728x90
문제
https://www.acmicpc.net/problem/28278
28278번: 스택 2
첫째 줄에 명령의 수 N이 주어진다. (1 ≤ N ≤ 1,000,000) 둘째 줄부터 N개 줄에 명령이 하나씩 주어진다. 출력을 요구하는 명령은 하나 이상 주어진다.
www.acmicpc.net
정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 5개의 명령에 대하여 처리하는 프로그램 작성
예제 입력 1
9
4
1 3
1 5
3
2
5
2
2
5
예제 출력 1
1
2
5
3
3
-1
-1
------------------------------------------------------------------------------------------------------------------
풀이
N = int(input()) 으로 입력을 받으면 시간 초과로 문제를 해결할 수 없다.

# 스택 2
import sys
N = int(sys.stdin.readline()) # 명령의 수 입력 받기
ST = [] # 스택 초기화
for i in range(N): # 5가지의 명령에 대해서 코드 작성
op = sys.stdin.readline().split() # 1 42 입력하면 ['1', '42']
if op[0] == '1':
ST.append(int(op[-1]))
elif op[0] == '2':
if ST:
print(ST.pop(-1))
continue
print(-1)
elif op[0] == '3':
print(len(ST))
elif op[0] == '4':
if ST:
print(0)
continue
print(1)
elif op[0] == '5':
if ST:
print(ST[-1])
continue
print(-1)

728x90
'문제 풀이' 카테고리의 다른 글
[백준] 2606번: 바이러스 - Python(파이썬) (0) | 2024.02.17 |
---|---|
[백준] 2178번: 미로 탐색 - Python(파이썬) (0) | 2024.02.17 |
[백준] 10798번: 세로읽기 - JAVA(자바) (0) | 2023.08.22 |
[백준] 2566번: 최댓값 - JAVA(자바) (0) | 2023.08.21 |
[백준] 2738번: 행렬 덧셈 - JAVA(자바) (0) | 2023.08.21 |