Level2️⃣ - 숫자의 표현
2024. 3. 27. 12:43ㆍ알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12924
자연수 n이 주어졌을 때, 연속된 자연수의 합으로 구할 수 있는 경우의 수를 구하는 문제이다.
그렇다면 1부터 차례대로 자연수를 연속적으로 더해본다. 이때 주어진 n보다 크면 안된다. 같거나 작은 경우에 계속 연속적으로 더해주고 연속된 자연수의 합으로 표현할 수 있는지 확인한다.
function solution(n) {
let ret = 0;
for(let i = 1; i<=n; i++){
let sum = i;
for(let j = i+1; sum<=n ;j++){
if(sum===n) {
ret++;
break;
}
sum+=j;
}
}
return ret;
}
1+2+3+4+5 = 15 이므로 1부터 시작했을 경우 연속적인 자연수의 합으로 표현이 가능하다.
2+3+4+5+6 > 15 이므로 2부터 시작했을 경우에는 연속적인 자연수의 합으로 표현이 불가능하다.
3+4+5+6 > 15 이므로 3부터 시작했을 경우에도 마찬가지로 불가능하다.
7+8 = 15 이므로 7부터 시작했을 경우에는 연속적인 자연수의 합으로 표현이 가능하다.
n 자기 자신도 포함되므로 15도 정답으로 간주한다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
Level 1 - 바탕화면 정리 (0) | 2024.03.27 |
---|---|
Level2️⃣ - 피보나치 수 (0) | 2024.03.27 |
Level2️⃣ - JadenCase 문자열 만들기 (0) | 2024.03.27 |
프로그래머스 L1 - 예산 (0) | 2024.03.26 |
프로그래머스 L1 - 체육복 (0) | 2024.03.25 |