[백준] #10828 - 스택 (파이썬, Python)
스택
https://www.acmicpc.net/problem/10828
내가 쓴 코드
그냥 input을 사용하니까 시간초과가 떠서, sys.stdin.readline을 사용했다.
import sys
input = sys.stdin.readline
n = int(input())
stack = []
for _ in range(n):
line = input().rstrip()
if line[-1].isdigit():
stack.append(int(line[5:]))
elif line == "pop":
print(stack.pop() if stack else -1)
elif line == "size":
print(len(stack))
elif line == "empty":
print(1 if not stack else 0)
elif line == "top":
print(stack[-1] if stack else -1)
고친 코드
push만 숫자가 포함된 명령어라 어떻게 처리할지 고민했는데 인터넷에서 찾아보니 그냥 split 사용하는 게 더 이해하기 쉬운 방법인 거 같다.
import sys
input = sys.stdin.readline
n = int(input())
stack = []
for _ in range(n):
line = input().split()
if line[0] == "push":
stack.append(int(line[1]))
elif line[0] == "pop":
print(stack.pop() if stack else -1)
elif line[0] == "size":
print(len(stack))
elif line[0] == "empty":
print(1 if not stack else 0)
elif line[0] == "top":
print(stack[-1] if stack else -1)
Author And Source
이 문제에 관하여([백준] #10828 - 스택 (파이썬, Python)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ms269/백준-10828-스택-파이썬-Python저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)