https://youtu.be/7C9RgOcvkvo?list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC
- 대기업에서는 DFS/BFS를 적절히 활용한 것을 문제로 많이 출제한다.
<선행되어야 하는 자료구조 개념 - Stack>
- 다양한 알고리즘에서 Stack 자료구조의 동작 방법과 사용 방법에 대해서 알아두어야 한다.
#스택 구현 예제
stack = []
stack.append(5)
stack.append(2)
stack.append(3)
stack.append(7)
stack.pop()
stack.append(1)
stack.append(4)
stack.pop()
print(stack[::-1])#최상단 원소부터 출력
print(stack) #최하단 원소부터 출력
- 파이썬에서 append() 함수와 pop()함수를 사용하면 손쉽게 스택을 구현할 수 있다. (즉, 별도의 표준라이브러리 필요 없이 기본제공 객체를 사용하면 된다.)
<선행되어야 하는 자료구조 개념 - Queue>
from collections import deque
#큐 구현을 위한 deque 라이브러리 사용
queue = deque()
queue.append(5)
queue.append(2)
queue.append(3)
queue.append(7)
queue.popleft()
queue.append(1)
queue.append(4)
queue.popleft()
print(queue) #먼저 들어온 순서대로 출력
queue.reverse() #역순으로 바꾸기
print(queue)
- 큐를 이용할 땐 큐라이브러리를 사용하는 것이 효율적이다. 리스트로도 큐의 기능을 구현할 순 있지만 시간복잡도가 훨씬 높기 때문에 라이브러리 사용을 하자!
- 그림에서는 왼쪽에서 들어와서 오른쪽으로 나가는 구조지만 코드를 구현할 땐 오른쪽에서 왼쪽으로 나가는 개념으로 생각해야 한다. popleft()!
'자료구조와 알고리즘 > 이것이 취업을 위한 코딩테스트다' 카테고리의 다른 글
알고리즘 - DFS(Depth-First Search) (0) | 2021.08.20 |
---|---|
알고리즘 - 재귀 함수(Recursive Function) (0) | 2021.08.20 |
알고리즘 - 구현(Implementation) (0) | 2021.08.19 |
알고리즘 - 그리디 알고리즘 (0) | 2021.08.18 |
자료구조와 알고리즘 - 재귀함수(Recursion) (0) | 2021.08.17 |