반응형
알고리즘
python 백준 스택(10828)
1. 문제
https://www.acmicpc.net/problem/10828
2. 풀이
- 각각 push, pop, size, enpty, top의 조건에 맞는 함수를 만들어 for문을 돌려 값을 구했다.
- for문에서 command를 splitg하여 사용한 이유는 입력값 중 push는 'push 1'의 형태로 입력되기 때문이다.
import sys
input = sys.stdin.readline
n = int(input())
stack = []
def push(x):
stack.append(x)
def pop():
if len(stack) == 0:
print(-1)
else:
print(stack.pop())
def size():
print(len(stack))
def empty():
if len(stack) == 0:
print(1)
else:
print(0)
def top():
if len(stack) == 0:
print(-1)
else:
print(stack[-1])
for i in range(n):
command = input().split()
if command[0] == 'push':
push(command[1])
if command[0] == 'pop':
pop()
if command[0] == 'size':
size()
if command[0] == 'empty':
empty()
if command[0] == 'top':
top()
[비슷하지만 조금 다른 풀이]
- 위의 풀이와 똑같은 풀이지만 함수를 따로 만들지 않고 바로 for문을 돌리면서 if로 조건을 붙여주었다.
for i in range(n):
command = sys.stdin.readline().split()
if command[0] == 'push':
stack.append(command[1])
elif command[0] == 'pop':
if len(stack) == 0:
print(-1)
else:
print(stack.pop())
elif command[0] == 'size':
print(len(stack))
elif command[0] == 'empty':
if len(stack) == 0:
print(1)
else:
print(0)
[느낀점]
- 스택의 개념을 이해하고 적용해보기 좋은 쉬운 문제였다.
반응형
'알고리즘 > Java' 카테고리의 다른 글
[python] 백준 균형잡힌 세상(4949) (0) | 2022.01.09 |
---|---|
[python] 백준 괄호(9012) (0) | 2022.01.09 |
[python] 백준 스택 수열(1874) (0) | 2022.01.09 |
[python] 프로그래머스 방금그곡(카카오 신입공채) (0) | 2021.12.26 |
[python] 백준 설탕 배달(2839) (0) | 2021.12.26 |