문제 설명
[ 아이디어 ]
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; 를 하지 않으면 효율성테스트에서 다 터진다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 위클리 챌린지 > 2주차 - 자바스크립트 (0) | 2021.08.17 |
---|---|
[프로그래머스] 위클리 챌린지 > 1주차 - 자바스크립트 (0) | 2021.08.17 |
[프로그래머스] 2018Kakao > 파일명 정렬 - 자바스크립트 (0) | 2021.05.10 |
[프로그래머스] 2021Kakao > 합승 택시 요금 - 자바스크립트 (0) | 2021.05.07 |
[프로그래머스] 탐욕법 > 단속카메라 - 자바스크립트 (0) | 2021.04.26 |
댓글