본문으로 바로가기

[Algorithmic] 스택, 큐, 덱

category SOLUTION/Baekjoon 2017. 7. 18. 23:31


   스택, 큐, 덱



스택

입력과 출력을 한방향에서 제한한 자료 구조이다. LIFO(Last in First Out)으로 가장 나중에 들어온 데이터가 제일 먼저 빠져 나가는 구조이다.

스택에서는 두가지 과정이 있는데, PUSH와 POP이다. PUSH는 데이터를 차례대로 넣어 저장하는 과정을 말한다. POP은 스택에서 가장 위에 있는 데이터를 하나씩 빼 오는 과정을 말한다. 

파이썬으로 모듈이 따로 존재하지 않고, List로 구현이 가능하다. 

대표적인 스택의 구조를 알 수 있는 문제는 baekjoon 10828번이다. ( 풀이 : [10828] 스택 )



한쪽 끝에서만 자료를 넣고 뺄 수 있는 자료구조이다. FIFO(First in First Out)구조로 처음으로 저장된 데이터를 처음 사용하는 방식이다.
큐에서도 두가지 과정이 있는데, PUSH와 GET이다. PUSH는 데이터를 차례대로 넣어 저장하는 과정이고, GET은 처음 저장된 데이터를 하나씩 사용하는 과정을 말한다.

파이썬에서는 큐 모듈이 존재한다. 큐 모듈 사용방법은 다음과 같다.

대표적인 큐의 구조를 알 수 있는 문제는 baekjoon 10845번이다. ( 풀이 : [10845] 큐

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 큐 모듈 선언
import queue
 
# 저장할 큐 생성
que = queue.Queue()
 
# Que 저장할 데이터 넣기
que.put('a')
 
# Que 데이터 꺼내오기
que.get()
 
# Que 상태 출력
que.qsize()
que.empty() 
que.full()

IT Security

 

양쪽 끝에서 자료를 넣고 뺄 수 있는 자료구조이다. 덱을 이용하면 스택과 큐를 구현할 수 있습니다. 

파이썬에서도 덱 모듈이 존재한다. 덱 모듈 사용방법은 다음과 같다.

대표적인 덱의 구조를 알 수 있는 문제는 baekjoon 10866번이다. ( 풀이 : [10866] 덱 )

1
2
3
4
5
6
7
8
9
10
11
12
13
# 덱 모듈 선언
from collections import deque
 
# 저장할 덱 생성
deq = deque()
 
# Deque 저장할 데이터 넣기
deq.append('a')            #오른쪽에 데이터 저장
deq.appendleft('b')        #왼쪽에 데이터 저장
 
# Deque 데이터 꺼내오기
deq.pop()                #오른쪽 데이터 꺼
deq.popleft()            #왼쪽 데이터 꺼내오기

IT Security


'SOLUTION > Baekjoon' 카테고리의 다른 글

[10866] 덱  (0) 2017.07.19
[10845] 큐  (0) 2017.07.19
[10828] 스택  (0) 2017.07.18
[2941번] 크로아티아 알파벳  (0) 2017.07.18
[2839번] 설탕배달  (0) 2017.07.18