스택, 큐, DFS, BFS
#스택 #Stack #큐 #Queue #깊이우선탐색(DFS) #너비우선탐색(BFS)
- 삽입(Push): 데이터를 삽입한다.
- 삭제(Pop): 데이터를 삭제한다.
- 스택(Stack)박스 쌓기.
- 선입후출First In Last Out 구조 또는 후입선출Last In First Out 구조.
- 별도의 라이브러리 없이 기본 리스트에서 append()와 pop()으로 스택구조를 동작시킬 수 있다.
- append() 메서드는 리스트의 가장 뒤쪽에 데이터를 삽입,
- pop() 메서드는 리스트의 가장 뒤쪽에서 데이터를 꺼냄.
1
2
3
4
5
6
7
8
9
10
# Python code
stack = []
stack.append(1)
stack.append(2)
stack.append(3)
stack.pop()
print(stack) # 최하단 원소부터 출력 -> [1,2]
print(stack[::-1]) # 최상단 원소부터 출력 -> [2,1]
- 큐(Queue)'공정한'자료구조.
- 새치기 없는 대기 줄.
- 선입선출First In First Out 구조.
- 파이썬으로 큐를 구현할 때는 collections 모듈에서 제공하는 deque 자료구조를 활용한다. deque는 스택과 큐의 장점을 모두 채택한 것인데 데이터를 넣고 빼는 속도가 리스트 자료형에 비해 효율적이며 queue 라이브러리를 이용하는 것보다 더 간단하다. 대부분의 코딩테스트에서는 collections모듈과 같은 기본 라이브러리 사용을 허락한다. 반환 타입은 deque객체이며, list(queue)를 해야 리스트 자료형이 반환된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# Python3 code
from collections import deque
queue = deque()
queue.append(1)
queue.append(2)
queue.append(3)
queue.popleft()
print(list(queue)) # 먼저 들어온 순서대로 출력 -> [2,3]
queue.reverse() # 다음 출력을 위해 역순으로 바꾸기
print(list(queue)) # 나중에 들어온 원소부터 출력 -> [3,2]
DFS, BFS를 위한 포스팅은 다음 글에 이어진다.
이 글의 내용이 많은 도움이 된다면 아래 책을 사서 읽어보고 공부하는 것을 추천한다.
이것이 취업을 위한 코딩 테스트다 with 파이썬
1
2
3
4
5
6
저자
나동빈
출판
한빛미디어
발매
2020.08.05.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.


