본문 바로가기

너비우선탐색

BFS/DFS 알고리즘 개념 정리 DFS (Depth-First Search) 깊이 우선 탐색 : 깊은 부분을 우선적으로 탐색하는 알고리즘 스택 자료구조 또는 재귀 함수 이용 1. 탐색 시작 노드를 스택에 삽입하고 방문 처리 2. 인접 노드 스택에 넣고 방문 처리 2-1) 스택의 최상단 노드에 방문하지 않은 인접한 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문 처리 2-2) 방문하지 않은 인접 노드가 없으면 스택에서 최상단 노드 꺼내기 3. 더 이상 2번의 과정을 수행할 수 없을 때까지 반복 BFS (Breadth-First Search) 너비 우선 탐색 : 가까운 노드부터 우선적으로 탐색하는 알고리즘 큐 자료구조 이용 1. 탐색 시작 노드를 큐에 삽입하고 방문 처리 2. 큐에서 노드를 꺼낸 뒤에 해당 노드의 인접 노드 중에서 방문.. 더보기
[python] 백준 1697번 숨바꼭질 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 💻 코드 from collections import deque def bfs(): queue = deque() queue.append(n) while queue: x = queue.popleft() # 시작점 if x == k: print(visited[x]) break for i in (x - 1, x + 1, x * 2): if 0 시작점 5 != 17이므로 if문은.. 더보기