프로그래머스 - 타겟 넘버

최지홍·2021년 9월 24일
0

프로그래머스

목록 보기
3/15

2단계

자바로 진행

문제 설명

  • n개의 음이 아닌 정수가 존재
  • 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 함
  • [1, 1, 1, 1, 1]로 숫자 3을 만들려면 5가지 방법이 존재

class Solution {
    private int count = 0;
    
    private void calc(int[] numbers, int start, int target) {
        if (start == numbers.length) {
            if (target == 0) count++;
            return;
        }
        
        target -= numbers[start];
        calc(numbers, start + 1, target);
        target += numbers[start];
        target += numbers[start];
        calc(numbers, start + 1, target);
    }
    
    public int solution(int[] numbers, int target) {
        int answer = 0;
        
        calc(numbers, 0, target);
        
        return count;
    }
}

막상 해결하고 나니 간단한 문제여서 놀랐습니다. 재귀 함수로 접근하는 방법은 처음부터 생각하였으나, 문제를 너무 어렵게 생각하여 너무 둘러온 것 같습니다. 들인 시간에 비해 결과가 조금 허무(?)하지만, 재귀를 다시 한번 정리할 수 있었습니다.

profile
백엔드 개발자가 되자!

0개의 댓글

관련 채용 정보