반응형

자료구조 2

[자료구조] DFS(깊이 우선 탐색), BFS(너비 우선 탐색) 구현

그래프 순회(Graph Traversals) 그래프 순회란 그래프 탐색이라고도 불리우며 그래프의 각 정점을 방문하는 과정을 말합니다. 그래프의 각 정점을 방문하는 그래프 순회(Graph Traversals)는 크게 깊이 우선 탐색(DFS, Depth-First Search)와 너비 우선 탐색(BFS, Breadth-First Search)의 2가지 알고리즘이 있습니다. DFS가 일반적으로 BFS에 비해 더 널리 쓰입니다. DFS는 주로 스택으로 구현하거나 재귀로 구현하며 백트래킹을 통해 뛰어난 효용을 보입니다. 반면 BFS는 주로 큐로 구현하며, 그래프의 최단 경로를 구하는 문제 등에 사용됩니다. 그래프 순회 알고리즘인 DFS와 BFS를 파이썬으로 구현해보도록 하겠습니다. 그래프를 우선 정의합니다. 그래..

Python/알고리즘 2021.03.06

[자료구조] 스택을 알아보고 연결 리스트로 스택 ADT 구현하기

이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다. 출처 : 파이썬 알고리즘 인터뷰 스택(Strack) 스택은 LIFO(Last In First Out, 후입선출)로 처리됩니다. 잔뜩 쌓아둔 접시를 떠올려보겠습니다. 마지막에 쌓은 접시가 맨 위에 놓일 것입니다. 그리고 가장 마지막에 쌓은 접시를 제일 먼저 꺼내게 됩니다. 스택도 마찬가지로 가장 마지막에 쌓은 데이터를 제일 먼저 꺼냅니다. 파이썬은 스택 자료형을 별도로 제공하지는 않지만, 리스트가 사실상 스택의 모든 연산을 지원합니다. 스택은 다음과 같은 2가지 주요 연산을 지원하는 요소의 컬렉션으로 사용되는 추상 자료형입니다. push(): 요소를 컬렉션에 추가합니다. pop(): 아직 제거되지 않은 가장 최근에 삽입된 요소를 제거합니다..

Python/알고리즘 2021.02.19
반응형