백준 1874: 문제링크

  • 문제유형 : 스택, 그리디

  • 설명

    1. 스택에 특정 수에 도달할 때까지 push한다.

    2. 스택이 특정 수에 도달하면 pop한다.

    3. 수의 배열을 완성하면 출력하고 불가능하면 NO를 출력한다

  • 풀이

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    n = int(input())

    count = 1
    stack = []
    result = []

    for i in range(1, n + 1): # 데이터 개수만큼 반복
    data = int(input())

    while count <= data: # 입력 받은 데이터에 도달할 때 까지 삽입
    stack.append(count)
    count += 1
    result.append('+')

    if stack[-1] == data: # 스택의 최상위 원소가 데이터와 같을 때 출력
    stack.pop()
    result.append('-')
    else: # 불가능한 경우
    print('NO')
    exit(0)

    print('\n'.join(result)) # 가능한 경우

Comment and share

  • page 1 of 1

Yechan Kim

author.bio


author.job