백분1874(파이썬) - 스택 수열
resilient
·2021. 5. 24. 02:11
728x90
반응형
https://www.acmicpc.net/problem/1874
- 이 문제는 생각을 잘해야 했다. 문제는 이해했는데 어떻게 구현해야 할지 감이 오지 않았다.
- 일단 data를 받고, for문을 돌려야겠다고 생각했으나, 어떻게 + 혹은 - 를 출력해야할지 생각하다가
- 리스트에 담고, 그 리스트를 for문으로 출력해야겠다고 생각했다.
- 따라서 for문에 while문을 담아서 구현해줬다.
import sys
input = sys.stdin.readline
n = int(input())
data = []
for i in range(n):
data.append(int(input()))
stack = []
result = []
idx = 1
for i in range(n):
if idx<=data[i]:
while idx<=data[i]:
stack.append(idx)
result.append('+')
idx += 1
stack.pop()
result.append('-')
else:
if len(stack)!=0 and stack[-1] == data[i]:
stack.pop()
result.append('-')
if len(stack)!=0:
print("NO")
else:
for i in result:
print(i)
반응형
'자료구조 & 알고리즘 > 백준(Baekjoon)' 카테고리의 다른 글
백준1074(파이썬) - Z (0) | 2021.05.27 |
---|---|
백준14499(파이썬) - 주사위 굴리기 (0) | 2021.05.25 |
백준1926(파이썬) - 그림 (0) | 2021.05.24 |
백준2468(파이썬) - 안전영역 (0) | 2021.05.23 |
백준1946(파이썬) - 신입사원 (0) | 2021.05.22 |