def solution(numbers, target):
answer = 0
def dfs(depth,s):
nonlocal answer
if depth == len(numbers):
if s == target:
answer += 1
return
dfs(depth+1,s+numbers[depth])
dfs(depth+1,s-numbers[depth])
dfs(0,0)
return answer
이전에 풀었던 DFS/BFS 문제 중 하나인데, 이전에 적었던 풀이보다 훨씬 더 빠르고 간단하게 풀이한 나의 모습을 보며 조금 뿌듯했다(ㅎㅎ..)
DFS와 BFS를 사용하여 모든 경우의 수를 탐색하고, 모든 경우의 수 중에서 target 값과 같을 때 answer를 +1 해주는 방식으로 풀이해주면 된다 :)
'Algorithm 💡 > DFS' 카테고리의 다른 글
[프로그래머스 PCCP 모의고사 2-4번] 수레 (0) | 2023.11.18 |
---|---|
[백준 14888번] 연산자 끼워넣기 (0) | 2023.10.06 |
[백준 15683번] 감시 (0) | 2023.08.31 |
[백준 17070번] 파이프 옮기기1 (0) | 2023.08.28 |
[백준 14500번] 테트로미노 (0) | 2023.08.25 |