1. 문제와 예제
2. 전체 코드
import sys
input = sys.stdin.readline
# 입력 받기
n = int(input().rstrip()) # 1~n 정수
stack = [] # 스택
op = [] # 필요한 연산
cnt = 1 # 1~n 정수 중 무슨 숫자까지 사용되었는지
isAble = True # 입력된 수열을 만들 수 있는지 여부
for i in range(n):
num = int(input().rstrip()) # 주어진 정수
while cnt <= num:
stack.append(cnt)
op.append("+")
cnt += 1
if (stack[-1] == num):
stack.pop()
op.append("-")
else:
isAble = False
break
if isAble == False:
print("NO")
else:
for i in op:
print(i)
3. 코드 해설
예제를 활용했고 각 과정에 번호를 붙여서 따라가다 보니 코드를 정리할 수 있었다.
'백준' 카테고리의 다른 글
[백준] 2164번 파이썬 (카드2) (0) | 2024.02.19 |
---|---|
[백준] 1929번 파이썬 (소수 구하기) (0) | 2024.02.18 |
[백준] 1654번 파이썬 (랜선 자르기) (0) | 2024.02.18 |
[백준] 7785번 파이썬 (회사에 있는 사람) (0) | 2024.02.12 |
[백준] 18870번 파이썬 (좌표 압축) (0) | 2024.02.11 |