IT보안관의 공부 클라우드
[백준 1874]스택 수열 본문
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
import sys
input = sys.stdin.readline
n = int(input())
stack1=[i for i in range(n+1,0,-1)]
stack2=[]
arr=[]
for i in range(n):
arr.append(int(input()))
answer=''
for i in arr:
# print("IIIIII",i)
if i not in stack1 and i not in stack2:
answer = 'NO'
break
if i in stack1:
while True:
data = stack1.pop()
# print("phase1", data)
stack2.append(data)
answer+="+"
# print(answer)
if data == i:
break
if i in stack2:
while True:
data = stack2.pop()
# print("phase2",data)
answer+='-'
# print(answer)
if data == i:
break
if answer == 'NO': print("NO")
else:
for i in answer:
print(i)
스택과 리스트를 이용해서 풀어 봄.
'코딩 테스트 > 백준' 카테고리의 다른 글
[백준 1193]분수찾기 (0) | 2022.08.22 |
---|---|
[백준 2941]크로아티아 알파벳 (0) | 2022.08.18 |
[백준 16194]카드 구매하기2 (0) | 2022.07.09 |
[백준 9095]1, 2, 3 더하기 (0) | 2022.07.09 |
[백준 12865]평범한 배낭 (0) | 2022.07.07 |
Comments