DFS - 깊이 우선 탐색, BFS - 너비 우선 탐색 DFS: 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘그래프는 노드와 간선으로 표현되며, 두 노드가 간선으로 연결되어 있을 시 인접하는 것 DFS는 주로 스택 자료구조를 이용한다. BFS: 가까운 노드부터 탐색하는 알고리즘, 주로 큐 자료구조 사용 1012 유기농 배추 import sys sys.setrecursionlimit(10000) t = int(input()) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def dfs(x, y): # 깊이우선탐색 for i in range(4): nx = x + dx[i] ny = y + dy[i] if nx=m or ny=n: continue elif graph[ny][nx] ..
DFS/BFS 깊이 우선 탐색 / 넓이 우선 탐색 설명은 이전 글에 있으니 생략하겠다. 백준 2644 촌수계산 from collections import deque n = int(input()) p1, p2 = map(int, input().split()) m = int(input()) relat = [] res = [] visited = [False] * (n+1) for _ in range(m): x, y = map(int, input().split()) relat.append([x, y]) relat.append([y, x]) graph = [[]] for i in range(1, n+1): temp = [] for x in relat: if x[0] == i: temp.append(x[1]) gr..
선행 개념 스택, 큐, 재귀 개념을 먼저 공부하고 들어가자. Stack 스택은 박스 쌓기로 생각하면 편하다. 나중에 쌓인 것이 가장 먼저 들릴 수 있는 것처럼, 이러한 구조를 LIFO(Last In First Out)라 한다. 파이썬에서는 리스트로 스택을 구현할 수 있다. stack = [] stack.append(1)# [1] stack.append(2)# [1, 2] stack.append(3)# [1, 2, 3] stack.pop()# [1, 2] stack.append(4)# [1, 2, 4] pop() 메소드는 가장 뒤의 데이터를 제거하고, append는 가장 뒤에 데이터를 삽입한다. 백준 10828 스택 import sys n = int(input()) stack = [] cmd = [sys...