프로그래머스 lv2 숫자의 표현

namkun·2022년 12월 31일
0

코딩테스트

목록 보기
54/79

문제 링크

숫자의 표현

풀이

  • 연속된 숫자의 합이 최종 타겟 숫자와 동일해지는 개수를 구하는 문제였고, 이는 재귀로 풀 수 있다고 생각했다.
class Solution {
    public int solution(int n) {
        int answer = 0;

        // n이 연속된 숫자의 합인 경우를 구하여라.
        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;
    }
}
  • 놀랍게도 처음으로 직접 재귀를 생각해서 구현해낸 답이었고, 효율성 테스트까지 잘 통과했다.
  • 비록 쉬운 문제이지만 만족스럽다.
profile
개발하는 중국학과 사람

0개의 댓글