프로그래머스 - 타겟 넘버(DFS/BFS)

구잉·2021년 11월 8일
0

https://programmers.co.kr/learn/courses/30/lessons/43165

숫자는 이미 정해져있으므로 (+)와 (-)만 생각해주면 된다!

  1. plusminus가 (+)인지 (-)인지에 따라 num에 숫자를 연산한다
    이때, index값을 이용하여 숫자를 가지고온다.
  2. index가 numbers의 크기와 같아지면 target과 num이 같은지 비교하고 같으면 answer의 증가시킨다
class Solution {
    int tar;
    int[] number;
    int answer = 0;
    public void recur(int num, int index, char plusminus){
        if(index == number.length){
            if(tar == num){
                answer++;
            }
            return;
        }
        
        if(plusminus == '+'){
            num += number[index];
        }
        else{
            num -= number[index];
        }
        
        recur(num, index+1, '+');
        recur(num, index+1, '-');
    }
    public int solution(int[] numbers, int target) {
        tar = target;
        number =numbers;
        recur(0, 0, '+');
        recur(0, 0, '-');
        
        return answer / 2;
    }
}
profile
시작을 두려워하지말자

0개의 댓글