문제는 쏘쏘하다 스택을 구현하면 된다. 나는 리스트를 스택처럼 사용하기로 했다. 리스트에는 append(), pop(), len()등 쉽게 활용할수 있는 메소드가 존재하기 때문에 쉽게쉽게 가기로 했다.
처음에 제출을 했을때는 시간초과가 나왔다. 왜 그런건가? 하고 고민을 3초 하다가 sys.stdin.readline으로 바꿔서 풀어보기로 했다.
sys.stdin.readline은 한줄을 그대로 입력을 받는다. 따라서 \n(개행문자)가 같이 들어오는 단점이 있으나 굉장히 빠르게 입력을 받기 때문에 많은 입력을 받아야하는경우 쉽게 사용할수있다.
무식하게 코딩을 한 결과 정답을 맞출 수 있었다.
import sys
n = int(input())
stack = []
for _ in range(n):
tmp = sys.stdin.readline()
if "push" in tmp:
a,b = tmp.split()
stack.append(int(b))
elif "pop" in tmp:
if len(stack) == 0:
print(-1)
else:
print(stack[-1])
stack.pop()
elif "size" in tmp:
print(len(stack))
elif "empty" in tmp:
if len(stack) == 0:
print(1)
else:
print(0)
elif "top" in tmp:
if len(stack) != 0:
print(stack[-1])
else:
print(-1)
'알고리즘' 카테고리의 다른 글
백준 4949 풀이 (균형잡힌 세상, 스택) (0) | 2021.03.04 |
---|---|
백준 10773 풀이 (sys.stdin.readline()) (0) | 2021.03.04 |
백준 2004 풀이 (조합 0의 개수) (0) | 2021.03.03 |
백준 9375 풀이 (패션왕 신혜빈, Counter) (0) | 2021.03.02 |
백준 1010 풀이 (다리 놓기, 다이나믹 프로그래밍) (0) | 2021.03.02 |