Home 프로그래머스(타겟 넘버)
Post
Cancel

프로그래머스(타겟 넘버)

첫 시도

  • 배열크기가 20까지, +,- 두 가지 연산이 필요하므로 2^20 → 10^6
  • 단순하게 브루트 포스로 해결 가능
  • 백준과 답안작성 방법이 달라 꽤나 고생, 적응에 시간이 걸릴듯

해결

  • 내용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Solution {
    int[] numbers;
    int target;
    int answer;

    void dfs(int index, int sum){
        if(index == numbers.length){
            if(sum == target) answer++;
            return;
        }
        dfs(index+1, sum+numbers[index]);
        dfs(index+1, sum-numbers[index]);

    }
    public int solution(int[] numbers, int target) {
        answer = 0;
        this.numbers = numbers;
        this.target = target;

        dfs(0,0);
        return answer;
    }
}

참고

This post is licensed under CC BY 4.0 by the author.