[백준] 1874번 스택 수열

거북이·2023년 1월 22일
0

백준[실버2]

목록 보기
3/81
post-thumbnail

💡문제접근

  • 1 ~ N까지의 수들로 이루어진 수열과 스택 수열을 비교하여 만들 수 있으면 그 과정을 출력하고 만들 수 없다면 NO를 출력하는 방식을 택했지만 그 과정이 너무나 복잡하여 결국 포기하고 다른 방법을 찾았다.

💡코드(메모리 : 32212KB, 시간 : 184ms)

import sys
input = sys.stdin.readline

stack = []
result = []
flag = True
n = int(input())
cnt = 1
for _ in range(n):
    num = int(input())
    while True:
        if cnt >= num:
            stack.append(cnt)
            result.append("+")
            cnt += 1
        else:
            cnt += 1

        if num == stack[-1]:
            stack.pop()
            result.append("-")
        else:
            flag = False
            break
if flag:
    for i in result:
        print(i)
else:
    print("NO")

💡소요시간 : 1h

0개의 댓글