문제 링크
숫자의 표현
풀이
- 연속된 숫자의 합이 최종 타겟 숫자와 동일해지는 개수를 구하는 문제였고, 이는 재귀로 풀 수 있다고 생각했다.
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 1; i <= n; i++) {
answer = recursive(i, 0, n, answer);
}
return answer;
}
public int recursive(int i, int sum, int target, int answer) {
if (i + sum > target){
return answer;
}
if (i + sum == target){
return answer + 1;
}
if (i + sum < target){
return recursive(i + 1, sum + i, target, answer);
}
return answer;
}
}
- 놀랍게도 처음으로 직접 재귀를 생각해서 구현해낸 답이었고, 효율성 테스트까지 잘 통과했다.
- 비록 쉬운 문제이지만 만족스럽다.