반응형
문제 설명
스택을 직접 구현해보는 문제이다.
- push X: 정수 X를 스택에 넣는 연산이다.
- pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
- size: 스택에 들어있는 정수의 개수를 출력한다.
- empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
- top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
풀이 과정
파이썬의 경우 리스트에 stack의 기본 기능들이 내장되어 있다.
따라서 각각의 명령어에 맞게 구현만 해주면 된다.
import sys
n = int(input())
stack = []
for i in range(n):
comm = sys.stdin.readline().strip()
if comm[:4] == "push":
stack.append(comm[5:])
elif comm == "top":
if len(stack) == 0:
print(-1)
else:
print(stack[-1])
elif comm == "pop":
if len(stack) == 0:
print(-1)
else:
print(stack.pop())
elif comm == "size":
print(len(stack))
elif comm == "empty":
if len(stack) == 0:
print(1)
else:
print(0)
전체 문제 & 코드는 위의 깃에 정리되어 있습니다.
팔로우 & 맞팔은 환영입니다 !
반응형
'Algorithm > Stack & Queue' 카테고리의 다른 글
[백준] 17298번 오큰수 (Python 파이썬) (4) | 2021.04.15 |
---|---|
[백준] 1874번 스택 수열 (Python 파이썬) (4) | 2021.04.13 |
[백준] 4949번 균형잡힌 세상 (Python 파이썬) (3) | 2021.04.13 |
[백준] 9012번 괄호 (Python 파이썬) (0) | 2021.04.12 |
[백준] 10773번 제로 (Python 파이썬) (0) | 2021.04.12 |