[프로그래머스](python) 타겟 넘버 - 깊이/너비 우선 탐색(DFS/BFS)

berry ·2021년 8월 12일
0

Algorithm

목록 보기
59/77
post-thumbnail

문제


🧩 DFS, BFS

DFS - 깊이 우선 탐색
BFS - 너비 우선 탐색


🧩 BFS

[1,1,1,1,1]의 numbers를 BFS를 이용하여 순서대로 탐색하여 나올 수 있는 모든 경우의 수를 배열로 저장하고, target과 같은 수의 개수를 return한다.


🏁 내 풀이

def solution(numbers, target):
    start = [0]
    for num in numbers:
        tmp = []
        for i in start:
            tmp.append(i+num)
            tmp.append(i-num)
        start = tmp
    answer = start.count(target)
    return answer

🧩 다른 풀이

def solution(numbers, target):
    if not numbers and target == 0 :
        return 1
    elif not numbers:
        return 0
    else:
        return solution(numbers[1:], target-numbers[0]) + solution(numbers[1:], target+numbers[0])

🧩 Feedback

재귀함수, 깊이우선탐색 코드에 대한 개념이 잘 잡혀있지 않아 이해하는 데에 오래 걸렸다.

profile
Engineer

0개의 댓글