[백준 Python Swift] 1874번 스택 수열

Cobugi·2021년 8월 21일
0

백준

목록 보기
6/21
post-thumbnail

1874번 스택 수열


풀이 방법

  • 스택 자료구조를 활용
  • LIFO(Last In First Out)
  • 1부터 n까지 수를 스택에 넣었다가 뺏다가 하면서 만들 수 있는 수열인지

풀이


Python

n = int(input())

stack = []
count = 1
answer = ''

for _ in range(n):
    num = int(input())
    while count <= num:
        stack.append(count)
        answer += '+'
        count += 1
    if stack[-1] == num:
        stack.pop()
        answer += '-'
    else:
        print('NO')
        exit(0)

print('\n'.join(answer))

Swift

import Foundation

let n = Int(readLine()!)!

var count = 1
var stack: [Int] = []
var answer: [String] = []

for _ in 0..<n {
    let num = Int(readLine()!)!
    
    while count <= num {
        stack.append(count)
        answer.append("+")
        count += 1
    }

    if stack.last == num {
        stack.popLast()
        answer.append("-")
    } else {
        print("NO")
        exit(0)
    }
}

print(answer.joined(separator: "\n"))
profile
iOS Developer 🐢

0개의 댓글