본문 바로가기
Code/파이썬 Python

[백준/ BOJ] 1874번 : 스택 수열 - [파이썬(Python)] 풀이

by 피비(pibi) 2024. 2. 2.
반응형

1874 스택 수열 풀이

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

 

import sys 
input = sys.stdin.readline
n = int(input())
cur = 1 # 현재 숫자
stack = [] # 담을 스택
answer = [] # 출력할 정답 스택
flag = 0 # NO를 프린트했을 때 answer 출력하지 않기 위한 flag

for i in range(n):
    num = int(input())
    while cur <= num: # 번호가 동일할때 까지 stack에 appned
        stack.append(cur)
        answer.append('+')
        cur += 1
    
    if stack[-1] == num: # 스택의 맨위가 번호랑 동일해야 pop이 가능
        stack.pop()
        answer.append('-')
    else: # 안될 경우 못만드는 구조
        print('NO')
        flag = 1 # 플래그를 통해 NO를 출력했으면 answer 더 안하도록

if flag == 0: 
    for i in answer:
        print(i)
  • 블로그 및 검색 여부 : O (코드말고 로직만 참고)

 

  1. 어떻게 했을 때 스택으로 수열을 만들 수 없는지 생각하는데 시간이 걸림.
  2. 실버 2 이상부터는 수학적 사고력을 요한다는걸 깨달음.
  3. flag를 사용하여 특정 경우에만 출력하는 첫 알고리즘

 

반응형