[백준 1874] 스택 수열

코뉴·2021년 8월 4일
0

백준🍳

목록 보기
38/149

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

🥚문제


🥚입력/출력


🍳코드

import sys

input = sys.stdin.readline
n = int(input())
goal = []
for _ in range(n):
    goal.append(int(input()))

stack = []
result = []
goal_idx = 0

target = 1
NO_FLAG = False
while True:
    # 종료 조건
    if target > n:
        # 정상 종료 조건
        if len(stack) == 0:
            break
        # NO 종료 조건
        elif stack[-1] != goal[goal_idx]:
            NO_FLAG = True
            break


    if len(stack) == 0:
        stack.append(target)
        result.append('+')
        target += 1
    elif stack[-1] == goal[goal_idx]:
        stack.pop()
        result.append('-')
        goal_idx += 1
    else:
        stack.append(target)
        result.append('+')
        target += 1

if NO_FLAG:
    print("NO")
else:
    for x in result:
        print(x)

🧂아이디어

  • 진짜 무슨 말인지 이해가 안돼서 계속 읽었던 문제
  • 다른 사람 블로그 보고 이해했다... 좀 명시좀 해주지 ㅠㅠ
  • 풀이 자체는 그렇게 어렵지 않았다! 종료 조건만 잘 잡으면 될듯!
profile
코뉴의 도딩기록

0개의 댓글