문제풀이/백준
[python/파이썬] 백준 1874 - 스택 수열 (실2)
bbugi
2023. 7. 20. 12:28
https://www.acmicpc.net/problem/1874
1874번: 스택 수열
1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.
www.acmicpc.net
자료구조 - 스택(stack)
---
수많은 오답의 향연..
python으로 풀었을 때 시간초과 잡는 법 새로 공부하기 (pypy3로 통과 얌시 씀)
그런데 틀렸다고 한 것도 결과값에 NO라고 출력해야 하는걸 대충보고 no라고 써서 그런 것
어쩐지 반례를 아무리 넣어도 vscode에서는 전부 정답으로 나오더라니..
[풀이 과정 - 나중에 python3로도 통과 가능하게 코드 리뷰하기]
from collections import deque
import sys
input = sys.stdin.readline
n = int(input())
num = []
base = deque([])
ans = []
sign = []
for i in range(n):
base.append(int(input()))
i = 1
while True:
if len(base) == 0 :
print(*sign, sep='\n')
break
if len(num) > 0 :
if base[0] == num[-1] :
sign.append('-')
ans.append(num.pop())
base.popleft()
continue
if base[0] in num:
print('NO')
break
if i not in num:
sign.append('+')
num.append(i)
i += 1