Scribbling

프로그래머스: 타겟 넘버 본문

Computer Science/Coding Test

프로그래머스: 타겟 넘버

focalpoint 2021. 10. 31. 13:58

완전탐색이다.

어떻게 구현하냐가 핵심인데, 모든 숫자를 다 사용한다는 점을 이용하면, O(2**N)으로 풀 수 있다.

answer = 0

def solution(numbers, target):
    global answer
    dfs(numbers, target)
    return answer

def dfs(numbers, target):
    if not numbers:
        if target == 0:
            global answer
            answer += 1
        return
    
    number = numbers[0]
    dfs(numbers[1:], target-number)
    dfs(numbers[1:], target+number)