Algorithm(알고리즘)/백준
22_백준 _10828번 파이썬 스택
반응형
시간초과가 안나게 짜는게 핵심이라던데
다른 기법 없이 함수 정의해서 작성했더니 정답이 됐다.
시간초과 뜰땐 입력을 input이 아닌 .readline 으로 받고
제출을 .pypy 로 제출해보도록 하자!
- 풀이
from sys import stdin
# 정수 X를 스택에 넣는 연산이다.
def push(x):
stack.append(x)
# 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다.
# 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
def pop():
if (not stack):
return -1
else:
return stack.pop()
# 스택에 들어있는 정수의 개수를 출력한다.
def size():
return len(stack)
# 스택이 비어있으면 1, 아니면 0을 출력한다.
def empty():
return 0 if stack else 1
# 스택의 가장 위에 있는 정수를 출력한다.
# 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
def top():
return stack[-1] if stack else -1
N = int(stdin.readline().rstrip())
stack = []
for _ in range(N):
input = stdin.readline().split()
order = input[0]
if order == "push":
push(input[1])
elif order == "pop":
print(pop())
elif order == "size":
print(size())
elif order == "empty":
print(empty())
elif order == "top":
print(top())
반응형
'Algorithm(알고리즘) > 백준' 카테고리의 다른 글
24_백준 9012번 파이썬 괄호 (0) | 2021.06.20 |
---|---|
23_백준 _10773번 파이썬 제로 (0) | 2021.06.20 |
21_백준 _10828번 파이썬 스택 (0) | 2021.06.20 |
20_백준 _11651번 파이썬 좌표 정렬하기2 (0) | 2021.06.20 |
19_백준 _1929_번 파이썬 소수 구하기 (0) | 2021.06.20 |
댓글