백준
백준 10828번 어떻게 풀었나, 스택(Stack) 구현
kimbro6
2023. 1. 5. 00:01
- 푼 방법
- 문제에 적혀있는 데로 구현 해 주었다..
- 더 알고 싶은 부분
- 한줄에 조건문 쓰는 법
- if
- 아래 두 코드는 똑같다.
- if animal is dog:
ret = dog - if animal is dog: ret = dog
- if - else
- 결과 = A if 조건 else B
- if - elif - else
- 결과 = A if 조건 else B if 조건 else C
- if
- 한줄에 조건문 쓰는 법
코드
import sys
N = int(sys.stdin.readline())
stack = []
for i in range(N):
cmd = sys.stdin.readline().strip()
# push X: 정수 X를 스택에 넣는 연산이다.
if "push" in cmd:
stack.append(cmd[5:])
# pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
elif cmd == "pop":
print(stack.pop() if stack else -1)
# size: 스택에 들어있는 정수의 개수를 출력한다.
elif cmd == "size":
print(len(stack))
# empty: 스택이 비어있으면 1, 아니면 0을 출력한다.
elif cmd == "empty":
print(0 if stack else 1)
# top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다.
elif cmd == "top":
print(stack[-1] if stack else -1)