https://www.acmicpc.net/problem/1874
도대체 뭔소린지 . .
이틀 고민함
입력과 출력이 왜저런지는 알겠다.
근데 이렇게 구현되는 코드를 짜는 건 어케하는지 모르겠다.
그래서 그냥 구글에서 찾아봤다.
stack은 오름차순으로 쌓인다는 성질을 이용하면
은근 쉬운 문제였음
n = int(input())
stack, ans, find = [], [], True
# 스택의 오름차순 성질 이용, 1부터 시작
now = 1
for i in range(n):
num = int(input())
# push
while now <= num :
# 스택은 1234 오름차순으로 쌓이기 때문에
# 앞에 수보다 입력값이 커야 쌓을 수 있음
stack.append(now)
ans.append('+')
now += 1
# pop
if stack[-1] == num :
stack.pop()
ans.append('-')
# 불가능할 때
else :
find = False
if find == False :
print('NO')
else :
for i in ans:
print(i)
약간 알락말락해서 print 다찍어봄
과연 내가 혼자 이 코드를 짤 수 있을까
의문이 드는 문제와 답이였다.
나중에 또 봐도 또 못풀 것같음. .
열심히 이해하려고 노력해보겠다.
'백준 문제풀이 > 자료구조' 카테고리의 다른 글
[백준] 9935 문자열 폭발 - python (0) | 2023.02.13 |
---|---|
[백준] 2493 탑 - python (0) | 2023.01.27 |
[백준] 9012 괄호 -python (0) | 2023.01.27 |
[백준] 10828 스택 -python (0) | 2023.01.27 |
[백준] 2164 카드2 -python (0) | 2023.01.27 |