IT보안관의 공부 클라우드

[백준 1874]스택 수열 본문

코딩 테스트/백준

[백준 1874]스택 수열

ㅡㅡㅡㅡㄷ 2022. 7. 7. 20:13

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