https://programmers.co.kr/learn/courses/30/lessons/12924
function solution(n) {
var answer = 0;
for (let i = 1; i <= n; i++) {
let sum = 0;
let tmp = i;
while (true) {
sum += tmp;
if (sum == n) {
answer++;
break;
}
else if (sum > n) {
break;
}
tmp++;
}
}
return answer;
}
let n = 15;
console.log(solution(15));
처음에 다 풀었을 때 효율성에서 딱 1개 에러가 났었다.
뭘까 하다가 그냥 sum이 같은 경우가 큰 경우보다 먼저 오니까 if문 순서만 바꿧는데 정답처리됐다. ;;
어차피 연속된 수를 구하는거라 시작점을 1부터 연속된 숫자를 더하다가 sum이 n과 같으면 tmp에 더하고, 아니면 다음 시작점으로 또 연속된 숫자를 더하면서 sum이 n과 같은 경우 answer를 증가시켰다.