- Last In First Out (LIFO) : 마지막에 넣은 데이터를 가장 먼저 추출하는 데이터 구조
Push : 데이터를 스택에 넣는 기능
Pop : 데이터를 스택에서 꺼내는 기능
컴퓨터 내부의 프로세스 구조의 함수 동작 방식에 스택이 많이 사용됨
장점
- 구조가 단순해서 구현을 하기 쉽다.
- 데이터 저장과 읽기 속도가 빠르다.
단점
- 일반적인 스택 구현시 데이터 최대 개수를 미리 정해야 한다 (파이썬은 재귀함수를 최대 1000번 사용 가능)
- 저장공간의 낭비를 발생시킬 수 있다.
파이썬에서는 리스트 기능에서 스택을 사용할 수 있다.
stack = []
stack.append(1) # = push
stack.append(2)
stack.pop() # 파이썬에 존재하는 함수
백준 10828 번 스택
import sys
def sol(com):
if com[0] == 'push':
stack.append(com[-1])
elif com[0] == 'pop':
if len(stack) == 0:
return -1
data = stack[-1]
del stack[-1]
return data
elif com[0] == 'size':
return len(stack)
elif com[0] =='empty':
if len(stack) == 0:
return 1
else:
return 0
elif com[0] =='top':
if len(stack) == 0:
return -1
return stack[-1]
n = int(sys.stdin.readline().rstrip())
stack = []
for i in range(n):
com = list(sys.stdin.readline().rstrip().split())
ans = sol(com)
if ans != None:
print(ans)
'백준 단계별 코딩 테스트' 카테고리의 다른 글
220722 : 1032, 1110 번 풀이 + HackerRank prepare 1문제 (0) | 2022.07.22 |
---|---|
220714 : 1264, 2744, 23037 번 풀이 (0) | 2022.07.22 |
큐 Queue (0) | 2021.12.07 |
쉬운 문제부터 여러개 풀어보기! - 날짜 (0) | 2021.11.22 |
쉬운 문제부터 여러개 풀어보기! - 진수 (0) | 2021.11.14 |