백준 1874 - 스택 수열 (Python3)
코드
n = int(input())
# 기본 스택
stack = []
# +, -를 담을 리스트
result = []
# 만들고자 하는 수열
target = []
for _ in range(n):
target.append(int(input()))
# 1~n까지의 숫자를 담을 변수
num = 1
for t in target:
while(num <= t):
stack.append(num)
result.append('+')
num += 1
if stack[-1] == t:
stack.pop()
result.append('-')
# stack이 비었을 때 => 수열이 만들어졌음
if not stack:
print('\n'.join(result))
# for i in result:
# print(i)
else:
print('NO')
문제 해설
스택의 push, pop 기능을 조건에 맞게 활용하고 +, -로 표현하여 출력하는 문제이다. 문제 풀이 과정보다 문제 자체에 대한 해석이 더 오래 걸렸다. 구글링을 하는 중 print와 join문을 활용하여 출력하는 방법을 알게 되어 새롭게 출력 방식을 적용해보았다.
댓글남기기