Algorithm Study

[프로그래머스] 타겟넘버 (level.2) / JAVA / DFS

hyun-1200 2022. 6. 3. 00:08

 

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

 

코딩테스트 연습 - 타겟 넘버

n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수

programmers.co.kr

 

 

- 난 왜 이걸 완전탐색문제라 생각하고 풀었지?

- 어쨌든, 재귀 문제이면서 깊이우선 탐색이므로 DFS 문제인것 같다. 

 

 

number[index] 가 + 인 경우와 - 인 경우 둘 다 해야하므로,  해당 함수를 두번 호출하면 된다.

1) - 해주는 경우 : solve(numbers, index+1, sum-numbers[index],target);

2) + 해주는 경우 : solve(numbers, index+1, sum+numbers[index],target);