[Programmers]두 정수 사이의 값

이묘·2022년 7월 19일
0

CodingTest

목록 보기
7/41
post-thumbnail

프로그래머스 코딩테스트 1단계

등차수열의 합




소스코드

// 내가 쓴 코드  
function solution(a, b) {
   var answer = 0;

   if(a === b){
       answer = a;
   }else if(a<b) {
       for(i = a; i <= b; i++){
           answer +=i;
       }
   }else if(b<a) {
       for(i = b; i <= a; i++){
           answer +=i;
       }
   }

   return answer;
}
// 등차수열의 합 공식 이용
solution = (a,b) => {
	return ((Math.abs(a-b)+1) * (a+b))/2
}






코드리뷰

사실 이번거는 업로드 안하려고했는데 생각보다 등차수열 공식을 이용하는 문제들이 많아서 정리해두려고 한다.

등차수열이란 일정한 간격으로 떨어진 숫자들의 나열을 말한다. 고등학교 때 죽어라 외워서 시험 봤지만 이제 대학생이 된 내 기억에서 사라진지는 오래였다..ㅋㅋㅠ

(항수 * (첫항+끝항))/2

이게 등차수열의 합 공식인데 코테에서도 은근히 많이 쓰인다. 이번 문제도 마찬가지고.

문제를 풀 때 다른건 다 주어져있으니 상관이 없는데 항 수를 어떻게 구할까 생각이 안나 검색을 해봤는데 좋은 게 있더라.

Math.abs(a-b)+1
//Math.abs(b-a)+1 상관없음

이 코드가 항의 개수를 구하는 공식이다.
a-b의 절댓값을 구하고 1을 더하면 a와 b사이에 있는 숫자들의 갯수가 나온다.

이제 구한 사이에 있는 숫자들의 갯수를 a+b와 곱해주고 2로 나누어주면 끝.

profile
본질을 공부해야 응용도 하지 않을까

0개의 댓글