목록2024/08/14 (3)
CS log

1. DFS/BFS 기초공통점그래프를 끝까지 탐색하기 위한 알고리즘이다 (완전탐색)to_visit, visited 리스트를 관리하는 것이 핵심이다!차이점탐색 순서 차이DFS는 상하로 우선 탐색, BFS는 좌우로 우선 탐색구현상의 차이점 : to_visit을 관리하고자 DFS는 스택, BFS는 큐(deque)를 사용codes overviewdef dfs(graph, start_node) : to_visit, visted = list(), list() # stack으로 관리 to_visit.append(start_node) while to_visit : node = to_visit.pop() if node not in visited : ..

1. StackLIFO(후입선출, Last-in First-out)대표적인 stack 자료구조 활용 : ctrl + z 파이썬에서의 구현 ➡️ 리스트stack = []stack.append(1) # [1]stack.append(2) # [1,2]stack.append(3) # [1,2,3]stack.pop() # [1,2] stack 자료 구조의 단점 ? 1 빼려면 2,3을 모두 빼야 함. 시간복잡도가 매우 큼. 맨 안쪽에 있는 블럭을 빼려면 느림. 2. Deque, double-ended queue보통의 큐는 FIFO(선입선출, First-in First-out)뒤에서는 push만, 앞에서는 pop만 가능하다. deque는 앞/뒤 모두에서 push와 pop이 가능하다! python에서의 구현 ➡️ f..