본문 바로가기
코딩테스트/프로그래머스

[프로그래머스] 연습문제 > 숫자의 표현 - 자바스크립트

by 핸디(Handy) 2021. 6. 14.

문제 설명

 

코딩테스트 연습 - 숫자의 표현

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; 를 하지 않으면 효율성테스트에서 다 터진다.

테스트 결과

 

댓글