개발/PS

[Python] 프로그래머스 Lv2 타켓넘버 (DFS, BFS)

유훈 | Yuhun 2022. 1. 1. 01:49
반응형

자료구조를 배우지 않고 풀었기에 깊이/너비 우선 탐색을 잘 몰라 그냥 푼 코드임으로 나중에 다시 공부할 필요가 있는 코드.

(그래도 일단 풀었으니 정리해두기)

풀이

def solution(numbers, target):
    answer = 0
    temp = [0] # 1 처음엔 0으로 시작
    for i in range(0, len(numbers)):
        temp2 = []
        for j in range(0, len(temp)): # 2
            temp2.append(temp[j] + numbers[i])
            temp2.append(temp[j] - numbers[i])
        temp = temp2 # 3

    for i in range(0, len(temp2)): # 4
        if target == temp2[i]:
            answer += 1

    return answer

#1. temp에 현재까지 계산한 값을 담아둔다. (처음엔 계산이 이루어지지 않았음으로 0 시작)

#2. temp2는 temp에서 현재까지 계산한 값을 가져와 +, - 를 한번씩 해준 값을 넣어준다.

#3. temp2 계산이 끝나면 temp로 옮겨주고 temp2는 빈 배열로 초기화 시켜준다.

#4. +, - 계산이 끝나면 총 결과에서 target과 얼마나 맞는 계산이 나오는지 확인한다.

반응형