[프로그래머스] 타켓 넘버(python3)

Peace·2021년 6월 28일
0

[프로그래머스] 타켓 넘버

문제 접근

단순히 dfs 백트랙킹으로 구현하면 되는 문제이다.
모든 경우의 수를 계산하면 풀 수 있는 문제이다.
파이썬으로 문제를 풀어봤다. syntax를 제외하고는 사고대로 구현할 수 있는 거 같아 재밌었다.

코드 구현(python3)

plusMinus = [1,-1]
stack = []
result = 0
def check(target):
    global stack
    temp = 0
    for i in stack:
        temp += i
    if temp == target:
        return True
    else:
        return False
def dfs(cnt, numbers, target):
    global stack
    global result
    global plusMinus
    if cnt == len(numbers):
        if check(target):
            result += 1
    else:
        for i in plusMinus:
            stack.append(i* numbers[cnt])
            dfs(cnt + 1, numbers, target)
            stack.pop()
            
def solution(numbers, target):
    dfs(0,numbers, target)
    global result
    answer = result
    return answer
profile
https://peace-log.tistory.com 로 이사 중

0개의 댓글