[프로그래머스 | Python] 타겟 넘버

게으른 완벽주의자·2023년 1월 30일
0

프로그래머스

목록 보기
22/83
post-custom-banner

프로그래머스_타겟 넘버

전역변수도, 지역변수도 아닌 애매한 변수를 어떻게 써야하는지 때문에 고민이 많다가 nonlocal을 알게 되면서 빠르게 풀 수 있었다

nonlocal : 전역변수는 아니지만, 해당 함수 내의 지역변수도 아닌 변수를 사용하고 싶을 때 사용

풀이 방식 같은 경우에는, 재귀를 사용한 dfs가 떠올라서 dfs를 사용해서 풀었다

def solution(numbers, target):
    answer = 0
    n = len(numbers)
    
    def dfs(i,result):
        #nonlocal : 전역변수는 아니지만, 해당 함수 내의 지역변수도 아닌 변수를 사용하고 싶을 때 사용
        nonlocal answer
        if i==n:
            if result==target:
                answer += 1
            return
        else:
            dfs(i+1, result+numbers[i])
            dfs(i+1, result-numbers[i])
    
    dfs(0,0)
    return answer
profile
데이터를 공부하고 있습니다
post-custom-banner

0개의 댓글