반응형
단순하게 DFS를 이용해 문제를 풀이했습니다.
상태 트리 각 노드의 레벨이 numbers의 요소를 하나씩 탐색하는 인덱스가 되고 해당 인덱스를 더할 때, 뺄 때 두가지의 경우로 가지를 내려나갑니다.
레벨이 numbers의 길이만큼 도달하면 탐색을 종료하고 지금까지 연산한 값이 target 값이라면 카운팅을 추가합니다!
문제 풀이(파이썬)
def DFS(L, sum, numbers, target):
global cnt
if L>=len(numbers):
if sum == target:
cnt += 1
else:
DFS(L+1, sum+numbers[L], numbers, target)
DFS(L+1, sum-numbers[L], numbers, target)
def solution(numbers, target):
global cnt
cnt = 0
DFS(0, 0, numbers, target)
return cnt
반응형
'Algorithm' 카테고리의 다른 글
[프로그래머스] 해시 - 완주하지 못한 선수(파이썬 문제풀이) (0) | 2021.03.31 |
---|---|
[프로그래머스] DFS/BFS - 네트워크(파이썬 문제 풀이) (0) | 2021.03.18 |
[프로그래머스] 정렬 - H-Index(파이썬 문제 풀이) (0) | 2021.03.18 |
[프로그래머스] 정렬 - 가장 큰 수(파이썬 문제 풀이) (0) | 2021.03.18 |
[프로그래머스] 정렬 - K번째 수(파이썬 문제 풀이) (0) | 2021.03.17 |
댓글