[Algorithm] 프로그래머스 43165 : 타겟 넘버

채멈·2024년 1월 21일

Algorithm

목록 보기
11/24
post-thumbnail

문제
https://school.programmers.co.kr/learn/courses/30/lessons/43165
풀이
https://github.com/nowChae/algorithm/blob/master/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/43165.%E2%80%85%ED%83%80%EA%B2%9F%E2%80%85%EB%84%98%EB%B2%84/%ED%83%80%EA%B2%9F%E2%80%85%EB%84%98%EB%B2%84.py

어떻게 풀어야 할 지는 생각해냈지만 구현을 하지 못해서 구글링을 통해 해결했다. DFS, BFS를 사용하여 문제를 풀려고 하니 더 어려웠고, 이진 트리 형태를 생각하며 기준이 되는 노드를 갱신하는 식으로 구현하였다.

너무 많은 풀이들이 나와있어서 그 중 가장 이해가 쉬웠던 코드를 분석했다.

내가 스스로 생각해내서 구현해 낸 코드가 아니라서 다음에 한 번 더 다른 방식으로 이 문제를 풀어보려고한다.
또한 이진 트리에 대한 추가적인 공부와 이진 트리를 DFS, BFS로 접근하는 방법을 공부해보면 좋을 것 같다고 생각했다.

< 풀이 코드 >

def solution(numbers, target):
    answer = 0
    nodes = [0]
    for n in numbers:
        cur = []
        for d in nodes:
            cur.append(d+n)
            cur.append(d-n)
        nodes = cur
        
    for r in nodes:
        if r == target:
            answer += 1
    return answer
profile
공부 기록 차곡차곡 ( ੭ ・ᴗ・ )੭

0개의 댓글