난이도: Lv.2
문제: https://school.programmers.co.kr/learn/courses/30/lessons/12924
알고리즘
시작을 1, 2, ..., n 으로 하여 시작인 수부터 연속된 수들을 차례대로 더한다.
코드
function solution(n) {
var answer = 0;
for (let i = 1; i <= n; i++) {
let sum = 0;
for (let j = i; j <= n; j++) {
sum += j;
if (sum > n) { break; }
else if (sum === n) { answer++; break; }
}
}
return answer;
}
주저리
이 코드로 하면 시간 초과 뜰 것 같아서 다른 방법 없나 계속 생각해봤는데 아무리 생각해봐도 이 방법 밖에 없어서 암담한 마음으로 실행시켰는데 효율성 테스트도 통과했다.
js에서 for문 돌릴때마다 더 보기 편하고 간단한 구문이 있을 것 같다는 생각이 든다. 자꾸 C적 사고 해서 쉽지않음.
'코딩테스트' 카테고리의 다른 글
[JS] 짝지어 제거하기 (0) | 2023.11.15 |
---|---|
[JS] 피보나치 수 (0) | 2023.11.13 |
[JS] 다음 큰 숫자 (0) | 2023.11.13 |
[JS] 이진 변환 반복하기 (0) | 2023.11.10 |
[JS] 올바른 괄호 (0) | 2023.11.10 |