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"))