PS/프로그래머스

[Python] 타겟 넘버

s_omi 2024. 12. 11. 10:14
728x90
반응형
SMALL

✏️ 문제

 

문제 파악

이 문제도 모든 경우의 수를 다 구하는 것 같아서 dfs를 활용해 풀었다. 

이때 특징은 index가 0에서 len(number)-1가 될 때까지 다음의 값을

  1. 더한다.
  2. 뺀다.

로 두 가지 경우가 있으므로 dfs도 두 가지로 나누어서 돌아야 한다.

 

 

코드

def solution(numbers, target):
    answer = 0
    
    def dfs(index, total):
        nonlocal answer

        if index == len(numbers):
            if total == target:
                answer += 1
            return
        
        dfs(index + 1, total + numbers[index])
        dfs(index + 1, total - numbers[index])
    
    dfs(0, 0)
    return answer

 

728x90
반응형
LIST

'PS > 프로그래머스' 카테고리의 다른 글

[Python] 롤케이크 자르기  (0) 2024.12.12
[Python] 모음 사전  (0) 2024.12.12
[Python] 전화번호 목록  (0) 2024.12.11
[Python] 피로도  (0) 2024.12.10
[Python] 프로세스  (0) 2024.12.10