티스토리 뷰

뭐야 문제가 무슨 뜻인지 알기 어려웠던 문제..ㅎ 

stack에 1부터 차례로 넣을 수 있고, 주어진 수열을 만들기 위해 push, pop 해야하는 경우를 +,-로 표현하는 것이었다.

즉, 예제를 보면

8
4
3
6
8
7
5
2
1

주어진 수는 8개이고 4, 3, 6, 8, 7, 5, 2, 1 순으로 stack에서 pop해야한다. 

즉, 4를 뽑기 위해선, 1, 2, 3, 4를 stack에 push하고 pop을 해야한다.  (push 4번, pop 1번)

그다음, 3을 뽑기 위해선 바로 pop을 하면 된다. 현재 stack의 상태가 1, 2, 3 이었으므로.

그 다음 6을 뽑기 위해선, 5, 6을 stack에 추가로 Push해주고 pop을 해야한다. 

이런식으로 pop 해서 주어진 수열을 만드는 문제였다.

 

문제 이해하기 어려움..ㅎ

n = int(input())
count = 1
stack = []
print_ = []
for _ in range(n):
    number = int(input())
    for i in range(count, number+1):
        stack.append(i)
        count = count + 1
        print_.append("+")
    if stack and stack[-1] == number:
        stack.pop()
        print_.append("-")
    else:
        print("NO")
        exit()
for i in print_:
    print(i)
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함