본문 바로가기

코테

[프로그래머스] <타겟 넘버> 파이썬

programmers.co.kr/learn/courses/30/lessons/43165

 

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

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

programmers.co.kr

DFS로 풀었음

answer = 0
def dfs(index, res, numbers, target) :
    global answer
    if index == len(numbers) :
        if res == target : answer += 1
        return
    dfs(index+1, res + numbers[index], numbers, target)
    dfs(index+1, res - numbers[index], numbers, target)
def solution(numbers, target):
    global answer
    dfs(0,0, numbers, target)
    return answer

정확성 테스트

테스트 1 통과 (325.72ms, 10.2MB)
테스트 2 통과 (322.01ms, 10.1MB)
테스트 3 통과 (0.64ms, 10.1MB)
테스트 4 통과 (1.82ms, 10.3MB)
테스트 5 통과 (10.15ms, 10.2MB)
테스트 6 통과 (1.09ms, 10.2MB)
테스트 7 통과 (0.63ms, 10.2MB)
테스트 8 통과 (3.24ms, 10.1MB)

채점 결과

정확성: 100.0

합계: 100.0 / 100.0