var pivotInteger = function(n) {
let x = 1
while(x <= n) {
if((x ** 2 * 2) === (n ** 2 + n)) return x
else x++
}
return -1
};
문제에서 요구하는 pivot 정수란? 먼저 정수
n
이 주어질 때
1부터 pivot 정수까지의 합 = pivot 정수부터n
까지의 합이 성립하는 정수를 말한다.
합을 구할때는 가우스 공식을 이용한다. 정수는 공차가 1인 등차수열이다. 등차수열의 합은 가우스 공식을 이용해서 쉽게 구할 수 있다. 가우스 공식은 다음과 같다.
(첫 번째 항 + 마지막 항) * 항의 개수 / 2
그럼 가우스 공식을 이용해서 1부터 pivot 정수까지의 합과 pivot 정수부터n
까지 합을 각각 구한 후 비교하여 등호가 성립하는지 확인하면 된다. pivot 정수x
를 1부터 시작하여 등호가 성립할 때까지 1씩 증가시키면서 확인한다.
n
까지 확인했는데 등호가 성립되지 않으면 -1를 리턴한다.