[programmers] 타겟 넘버

Gomao·2023년 3월 1일
0

코딩테스트 준비

목록 보기
5/20

프로그래머스 Lv2 타겟 넘버

완전탐색 알고리즘 연습하기 좋은 문제라고 하여 도전하였다.
추가로, 이제까지는 모든 연습을 JavaScript로 하였는데,

1) 언어를 하나 더 잘 다루면 좋을 것 같아서
2) 강력한 내장함수.. "파이썬이라면 풀 수 있었을텐데" 하지 않으려고

이런 사유로 인해 파이썬으로 코테연습을 하기로 하였다.

def solution(numbers, target):
    answer = [0]
    def dfs(i, result):
        if i == len(numbers):
            if result == target: 
        # 최대 깊이에 도달했을 때, result가 target과 같으면,
                answer[0] += 1 # counting한다.
            return 
        # 최대 깊이에 도달하지 않았으면
        # 각 parent는 +- numbers[index]를 element로 가진다.
        dfs(i+1, result + numbers[i])
        dfs(i+1, result - numbers[i])
        # 함수 종료
    
    dfs(0, 0) # index : 0, result : 0에서부터 DFS를 수행한다.
    return answer[0]
profile
코딩꿈나무 고마오

0개의 댓글