BOJ
[백준/BOJ] python 10828번 스택
kyj0015
2023. 7. 30. 00:39
언어: python
번호: 10828
제목: 스택
등급: 실버 4
풀이 과정:
명령의 수 n을 입력받고, n번 명령을 입력 받아 if문을 사용해 명령에 따라 출력한다.
잘못된 코드:
n = int(input())
stack = []
for i in range(n):
order = input().split()
if order[0]=='push':
stack.append(order[1])
elif order[0]== 'pop':
if len(stack)==0:
print(-1)
else:
print(stack[-1])
stack.remove(stack[-1])
elif order[0]=='size':
print(len(stack))
elif order[0]=='empty':
if len(stack)==0:
print(1)
else:
print(0)
elif order[0]=='top':
if len(stack)==0:
print(-1)
else:
print(stack[-1])
고친 코드:
import sys
input = sys.stdin.readline
n = int(input())
stack = []
for i in range(n):
order = input().split()
if order[0]=='push':
stack.append(order[1])
elif order[0]== 'pop':
if len(stack)==0:
print(-1)
else:
print(stack.pop())
elif order[0]=='size':
print(len(stack))
elif order[0]=='empty':
if len(stack)==0:
print(1)
else:
print(0)
elif order[0]=='top':
if len(stack)==0:
print(-1)
else:
print(stack[-1])
고친 점:
1. 시간 초과로 input = sys.stdin.readline 을 추가했다.
2. remove로 pop을 구현하려 했는데 remove는 앞에서부터 요소를 제거하는거라 에러가 떴다. pop() 함수를 사용했다.