백준 1874 / 스택수열

dogit·2022년 6월 20일
0

백준문제

목록 보기
61/67

문제

풀이


1. 각각의 입력받은 값을 호출
2. 그 호출한 값이 n이라고 한다면
3. n까지 오름차순으로 스택에 쌓는다 -> 스택에 쌓이면 +부호가 따로 쌓임
4. 다음 호출 값이 이전의 값보다 작다면 그 값을 찾을 때 까지 pop
-> pop 하는 수 만큼 -부호가 쌓임

코드

n = int(input())
n_list = []
stack = []
result = []
count = 1
ok = True

for _ in range(n):
    n_list.append(int(input()))

for num in n_list:
    while num >= count:
        stack.append(count)
        result.append('+')
        count += 1

    if num == stack[-1]:
        stack.pop()
        result.append('-')
    else:
        ok = False
        break

if ok == False:
    print("NO")
else:
    for i in result:
        print(i)

새로 알게된 지식

출처

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

profile
느리더라도 꾸준하게

0개의 댓글