타겟 넘버 파이썬

Lee Hyun Joon ·2022년 7월 17일

알고리즘정리

목록 보기
9/17

본 글은 문제를 어떻게 풀었는지 기억하고자 정리한 글입니다.
타겟 넘버는 여러개의 숫자들의 덧셈 뺄셈 조합으로 , 주어진 값이 나오는 경우의 수를 찾는 문제입니다.
이 문제는 백준에 사칙연산 방식을 백트래킹 방식으로 구현한 것과 동일하게 진행하면 바로 풀립니다.

total = 0
def backtrack(current_lst,current_idx,val,target):
    global total
    if current_idx != len(current_lst):
        backtrack(current_lst, current_idx+1, val+current_lst[current_idx], target)
        backtrack(current_lst, current_idx+1, val-current_lst[current_idx],target)
    else:
        if val == target:
            total+=1 
def solution(numbers, target):
    global total
    backtrack(numbers, 0, 0, target)
    answer = total
    return answer

음.. 제가 생각할 수 있었던 방법은 global 변수에 저장해서 갖고 온 방식이어서 이렇게 구현했습니다. 혹시 더 좋은 방식이 있다면 피드백해주시면 감사하겠습니다!

profile
우당탕탕 개발 지망생

0개의 댓글