스택 수열 1874

    

 

스택 수열 

1874

https://www.acmicpc.net/problem/1874


난독을 불러일으키는 문제

스택에 12345.. 순서로 Push하거 스택 Pop할 수 있는데 이 방법으로 주어진 수열을 만들 수 있냐는 문제였다.


```python

#1874

n=int(input())

num_lst=[]

for i in range(1,n+1):

    num_lst.append(int(input()))

# num_lst.reverse()


push_pop_lst=[]


stack=[]


increasing_num=1

is_fail=False


for num in num_lst:

#     print(num, stack,push_pop_lst)

    if len(stack)==0:

        stack.append(increasing_num)

        push_pop_lst.append("+")

        increasing_num+=1


    while stack[-1]!=num:

        if increasing_num>n:

            is_fail=True

            break

        push_pop_lst.append("+")

        stack.append(increasing_num)

        increasing_num+=1

    

    if is_fail:

        print("NO")

        break

    stack.pop()

    push_pop_lst.append("-")

      

if not is_fail:

    for plus_min in push_pop_lst:

        print(plus_min)

```



댓글

이 블로그의 인기 게시물

js 스트링에서 요소 갯수 세기

STUDY

javascript cheatsheet