[アルゴリズム]目標番号(DFS、BFS)
1717 ワード
ターゲット番号
(質問)
DFS深度優先ナビゲーション、主に移動プロセス(Stack)の計算に使用
BFS幅優先ナビゲーションを使用して、主に最短距離(queue)の計算に使用します.
BFS使用時のfrom collections import dequeの追加
まず,プロジェクトはBFS/DFSのナビゲーションであるため,ナビゲーションを用いて問題を解決した.
DFS実装.
def solution(numbers, target):
# DFS
# 최상단 Node 선언
visited = [0]
for number in numbers:
temp =[]
for i in visited:
# +1 과 -1 뿐
temp.append(i+number)
temp.append(i-number)
visited = temp
print(visited)
return visited.count(target)
0
+1 -1
+1-1 +1 -1
+1-1 +1-1 +1-1 +1-1
numbers 만큼
アクセス値:[5, 3, 3, 1, 3, 1, 1, -1, 3, 1, 1, -1, 1, -1, -1, -3, 3, 1, 1, -1, 1, -1, -1, -3, 1, -1, -1, -3, -1, -3,-3, -5]
アクセス値中にCountを使用してターゲット値を取得
BFSの実装
BFSの実装に対する理解が乏しいため,対応するソースを用いた.
ソース:https://jainn.tistory.com/139?category=913177
from collections import deque
def solution(numbers, target):
answer = 0
queue = deque()
#최상단노드
queue.append(0)
for number in numbers:
for _ in range(len(queue)):
n = queue.popleft()
queue.append(n+number)
queue.append(n-number)
return queue.count(target)
デック[0][1 -1][-1 2 0][2 0 0 -2][0 0 -2 3 1]
順番に入る.
BFSの場合、キューが使用されるため、先頭の値を減算し、隣接する値を追加します.
Reference
この問題について([アルゴリズム]目標番号(DFS、BFS)), 我々は、より多くの情報をここで見つけました https://velog.io/@kujin2/알고리즘-타겟넘버-DFS-BFSテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol