코딩/공부

[Python] 백준 10828번 - 스택

취미니스트 2024. 3. 29. 22:03
728x90
반응형

문제

https://www.acmicpc.net/problem/10828


표준 입력을 위해 sys모듈 추가.

비어있는 리스트 생성.

입력받은 정수만큼 반복.

- 문자열 입력.

- 입력받은 문자열에서 앞 네글자가 push이면 띄어쓰기를 기준으로 명령어와 값을 분리.

- 아니면 해당 문자열을 명령어로 사용하고, 숫자는 임의의 값(0)을 저장.

- 명령어가 push이면 저장.

- 명령어가 pop일 경우 리스트에 요소가 존재하면 pop 아니면 -1 출력.

- 명령어가 size일 경우 리스트의 길이 출력.

- 명령어가 empty일 경우 비어있으면 1 아니면 0 출력.

- 명령어가 top일 경우 비어있으면 -1 아니면 맨 뒤 요소 출력.

import sys


input = sys.stdin.readline
stack = []
for _ in range(int(input())):
    msg = input().strip()
    if msg[:4] == 'push':
        cmd, n = msg.split()
    else:
        cmd = msg
        n = 0
    if cmd == 'push':
        stack.append(int(n))
    elif cmd == 'pop':
        print(stack.pop() if stack else -1)
    elif cmd == 'size':
        print(len(stack))
    elif cmd == 'empty':
        print(0 if stack else 1)
    elif cmd == 'top':
        print(stack[-1] if stack else -1)
728x90
반응형

'코딩 > 공부' 카테고리의 다른 글

[Python] 백준 2164번 - 카드2  (0) 2024.03.29
[Python] 백준 10773번 - 제로  (0) 2024.03.29
[Python] 백준 9012번 - 괄호  (1) 2024.03.29
[Python] 백준 1010번 - 다리 놓기  (0) 2024.03.29
[Python] 백준 9461번 - 파도반 수열  (0) 2024.03.29