제주 탈출 일지

[Python3]프로그래머스 레벨 2 - 타겟넘버 본문

코딩 테스트

[Python3]프로그래머스 레벨 2 - 타겟넘버

귀건 2021. 4. 26. 18:50
728x90
반응형
answer = 0

def dfs(i, target, score,numbers, pl):
    global answer
    if i >= len(numbers):
        if score == target:
            answer += 1
        return
    if pl == 0 :
        score += numbers[i]
    elif pl == 1 :
        score -= numbers[i]    
    i += 1
    dfs(i, target, score, numbers, 0)
    dfs(i, target, score, numbers, 1)
    
    
def solution(numbers, target):
    
    ans1 = numbers[0]
    ans2 = -1*numbers[0]
    
    dfs(1, target, ans1, numbers, 0)
    dfs(1, target, ans1, numbers, 1)
    dfs(1, target, ans2, numbers, 0)
    dfs(1, target, ans2, numbers, 1)
       
    return answer // 2

programmers.co.kr/learn/courses/30/lessons/43165?language=python3

 

코딩테스트 연습 - 타겟 넘버

n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+

programmers.co.kr

 

dfs -, +를 나누어서 호출해서 마지막 부분에 동일한 검사를 두번 하게 됨. 그래서 reture answer // 2를 해줌.

bb 

728x90
반응형
Comments