문제 풀이

[백준] 28278번: 스택 2 - Python(파이썬)

auyeol 2024. 2. 17. 15:51
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