코딩테스트/프로그래머스
[프로그래머스] 연습문제 > 숫자의 표현 - 자바스크립트
핸디(Handy)
2021. 6. 14. 17:07
문제 설명
코딩테스트 연습 - 숫자의 표현
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할
programmers.co.kr
[ 아이디어 ]
2중 for문으로 돌면서 앞에서부터 하나씩 더해서 목표(n)과 같으면 answer에 1를 추가하고 이때 합이 n보다 넘기면 효율성 테스트를 위해 break로 이후 계산을 제거한다.
[ 코드 ]
function solution(n) {
let answer = 1;
for(let i =1; i <= n/2+1;i++){
let total = 0;
for(let j =i; j <= n; j++){
total+=j;
if(total == n) answer++;
if(total > n) break;
}
}
return answer;
}
answer를 1로 초기화한 이유는 자기 자신이 있기 때문이다.
만약 if(total > n) break; 를 하지 않으면 효율성테스트에서 다 터진다.