문제 설명
Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다.
- 1 + 2 + 3 + 4 + 5 = 15
- 4 + 5 + 6 = 15
- 7 + 8 = 15
- 15 = 15
자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요.
제한사항- n은 10,000 이하의 자연수 입니다.
입출력 예nresult
15 | 4 |
class Solution {
public int solution(int n) {
int answer = 0;
int sum;
for(int i = 1; i < n; i++){
sum = 0;
for(int j = i; j < n; j++){
sum += j;
if(sum == n){
answer++;
break;
}
//효율성 테스트 통과를 위해
if(sum > n) {
break;
}
}
}
answer += 1;
return answer;
}
}
완전탐색
1부터 1+2+3 ... 식으로 더해서 구할 숫자와 일치하면 카운트 +1
일치하지 않는다면 시작 넘버를 2부터 해서 2+3+4 ... 하는 식
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[220917] Level 2 다음 큰 숫자 (x) (0) | 2022.09.17 |
---|---|
[220917] Level 2 피보나치 수 (x) (0) | 2022.09.17 |
[220916] Level2 최댓값과 최솟값 (0) | 2022.09.16 |
[220916] Level2 올바른 괄호 (x) (0) | 2022.09.16 |
[220916] Level2 이진 변환 반복하기 (x) (0) | 2022.09.16 |