반응형
- 첫 풀이 및 정답풀이
이 문제의 핵심은 연속된 자연수들로 n이라는 특정 수를 만들 수 있는 경우의 수를 찾는 것이다. dp로 푸는 방법이 있을까 하고 규칙성을 찾아보았지만, 찾지 못했고 단순한 완전 탐색 문제라고 생각되어 반복문을 이용해 간단하게 해결할 수 있었다.
class Solution {
public int solution(int n) {
int answer = 0;
int temp;
// 1. 1부터 n까지 반복, 각 경우의 시작 숫자.
for(int i = 1;i <= n; i++){
// 2. 모두 더한 값이 저장되는 변수.
int sum = 0;
// 3. 각 경우의 시작 값.
temp = i;
// 4. sum <= n인 경우는 계속해서 더해준다.
while(sum <= n){
// 5. sum == n인 경우 answer증가, n을 넘은 경우는 반복문만 벗어난다.
if(sum == n){
answer++;
break;
}
// 6. temp값을 1씩 증가시키며 연속되는 자연수를 더해준다.
sum+=temp;
temp++;
}
}
return answer;
}
}
반응형