타겟 넘버
개요
- 이번 포스팅은 파이썬 코딩테스트 연습문제 풀이입니다.
Programmers
에 공개된 예제이며 링크는 아래와 같습니다.
코드
def solution(numbers, target):
answer = 0
def dfs(number, level):
nonlocal answer
if level == len(numbers):
if number == target:
answer += 1
return
temp = [-number, number]
if level == 1:
for i in range(2):
dfs(temp[i] + numbers[level], level + 1)
dfs(temp[i] - numbers[level], level + 1)
else:
dfs(number + numbers[level], level + 1)
dfs(number - numbers[level], level + 1)
dfs(numbers[0], 1)
return answer
마치며
이번 포스팅은 Programmers
에 존재하는 파이썬 코딩테스트 깊이/너비 우선 탐색(DFS/BFS) 예제 중 레벨 2에 해당하는 문제입니다.