개발 공부/코딩 테스트

[프로그래머스] 숫자의 표현 JavaScript

바 질 2024. 2. 6. 18:30

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12924

풀이

function solution(n) {
    let cnt = 0
    for (let i = 1; i <= n; i++){
        let sum = i;
        let temp = i;
        while (sum < n) {
            temp += 1
            sum += temp
        }
        if (sum === n){
                cnt += 1
            }
    }
    return cnt
}

n을 연속하는 자연수의 합으로 표현해야 한다. 첫번째 자연수는 1로 시작한다. 1에 차례대로 자연수를 더하다가 합계가 n을 넘어가면 첫번째 자연수는 2로 바뀐다. 다시 2에다가 자연수를 차례대로 더한다. 이 과정을 반복한다. 합계가 n이랑 같으면 cnt가 1씩 증가한다.