1874번 - 스택 수열

의혁·2025년 1월 26일
0

[Algorithm] 알고리즘

목록 보기
26/50

💡 무의미한 메모리 사용을 줄이자!!

import sys

input = sys.stdin.readline

n = int(input())

curr = 1

stack = []
ans = []

# 수열 입력 받음
for _ in range(n):
    
    seq = int(input())
    
    while curr <= seq:
        stack.append(curr)
        ans.append('+')
        curr += 1
    
    if stack[-1] == seq:
        stack.pop()
        ans.append('-')
    else:
        print("NO")
        exit()

for j in ans:
    print(j)
  • 문제를 풀면서 접근법과 문제 이해는 빨리 되었지만, 이상하게 어떻게 풀어야 할지가 고민이었다.
  • 처음에는 seq를 배열로 선언을 먼저하여 값을 다 받고 index를 늘려가면서 비교하였지만 생각해보니 그럴 필요가 없었다.
  • 결국 이 문제는 문제의 요지를 얼마나 빨리 이해하는지가 중요했던거 같다.
  • 입력 받는 수까지 append를 받고, 가장 마지막 수와 입력받은 수가 같아야지만 원하는 수열을 만들수 있고 그렇지 못하면 만들수 없다.
profile
매일매일 차근차근 나아가보는 개발일기

0개의 댓글