DataScience trainee

Programmers - 타겟 넘버

타겟 넘버


개요

  • 이번 포스팅은 파이썬 코딩테스트 연습문제 풀이입니다.
  • Programmers 에 공개된 예제이며 링크는 아래와 같습니다.

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


코드

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에 해당하는 문제입니다.