-
Programmers LV.2 타겟넘버Programmers 2020. 12. 30. 18:46
static int answer =0; @org.junit.Test public void targetNumber(){ int[] numbers = {1,1,1,1,1}; int target = 3; dfs(numbers, 0, target); System.out.println(answer); } public void dfs(int[] numbers , int index , int target){ if(index == numbers.length){ int sum = 0; for(int i=0; i<numbers.length; i++) sum += numbers[i]; answer += (sum == target) ? 1 : 0; return; } dfs(numbers,index+1,target); System.out.println("first index" + (index+1)); numbers[index] *= -1; System.out.println("numbers " + numbers[index]); dfs(numbers,index+1,target); System.out.println("last index" + (index+1)); }
DFS 사용해서 + / - 를 index 별로 변경하여 확인 후 answer 출력
'Programmers' 카테고리의 다른 글
코딩테스트 연습 - 위클리첼린지 1주차 부족한금액계산하기 (0) 2021.08.29 Programmers LV.3 네트워크 (0) 2020.12.31 Programmers LV.2 카펫 (0) 2020.12.30 Programmers LV.1 모의고사 (0) 2020.12.30 Programmers LV.2 가장 큰 수 (0) 2020.12.29