[백준] 28278 스택2 |스택
[python] 문제 풀이
import sys
input = sys.stdin.readline
#입력을 빠르게 처리할 수 있음
#input()보다 속도가 빠름. 반복적으로 많은 입력 받기 가능
n = int(input()) #명령 개수 n 입력 #n번 만큼 명령 반복
stack = [] #스택 초기화
for _ in range(n):
cmd = list(map(int,input().split()))
#한줄에 입력된 명령을 정수로 변환 후 리스트에 저장
#명령의 첫번째 값 cmd[0]
if cmd[0]==1:
stack.append(cmd[1]) #스택에 넣기
elif cmd[0]==2: #두번째 명령
if stack: #스택이 비어있지 않으면
print(stack.pop()) #맨위의 정수를 빼고 출력
else:
print(-1)
elif cmd[0] ==3:
print(len(stack))
elif cmd[0] ==4:
if stack:
print(0)
else:
print(1)
elif cmd[0] ==5:
if stack:
print(stack[-1]) #맨 뒤의 값 보여주기
else:
print(-1)
'코딩테스트 > 백준' 카테고리의 다른 글
[백준][python] 2588번: 곱셈 | While (1) | 2024.09.13 |
---|---|
[백준][python] 10172번 개 | 이스케이프 문 (0) | 2024.09.12 |