사용 언어 - Python3
1874번: 스택 수열 (실버2, 스택)
문제 ★스택 문제★
정답
스택 문제 !!
(코드 풀이)
1. stack 쌓기
cur 변수를 이용해서 입력값인 num과 같아질때까지 1씩 증가시키며 빈 리스트 stack에 append해준다.
cur == num 인 경우, stack의 마지막 원소인 stack[-1]은 num과 같아질 것 이고, 이 때 pop을 진행한다.
append할 땐 +를 pop할땐 -를 빈 리스트 answer에 append해준다.
2. 예외 처리
flag = 0을 선언하여 예외인 경우를 처리해준다.
예외인 경우, flag = 1로 선언하고 더이상 for문을 진행할 필요가 없으므로 break 해준다.
flag = 1인 경우, answer 리스트를 출력해준다.
# 정답
n = int(input())
stack = []
answer = []
flag = 0
cur = 1
for i in range(n):
num = int(input())
while num >= cur:
stack.append(cur)
answer.append("+")
cur += 1
if stack[-1] == num:
stack.pop()
answer.append("-")
else:
print("NO")
flag = 1
break
if flag == 0:
for i in answer:
print(i)
레퍼런스
- 정답 참고
- 깃허브 정답
'Algorithm > 스택&큐&덱&힙' 카테고리의 다른 글
[백준] 2164번 카드2 (0) | 2023.01.22 |
---|---|
[백준] 18258번 큐 2 (0) | 2023.01.21 |
[백준] 9012번 괄호 (0) | 2023.01.20 |
[백준] 10773번 제로 (0) | 2023.01.20 |
[백준] 10828번 스택 (0) | 2023.01.20 |
댓글