언젠가는
(파이썬) Python3 백준 1874번 - 스택 수열 본문
import sys
a = int(sys.stdin.readline())
좀 더 빠르게 입력값을 얻기 위해 넣습니다.
s=[]
push할 때 들어오는 값들을 s=[]에 넣습니다.
op=[]
push 일 때 '+'를, pop일 때 '-'를 넣습니다.
count=1
문제에서 오름차순으로 들어간다고 했으므로, 처음 push되는 값은 1입니다.
er=0
오류가 났을 때 식별자 역할을 해 줄 변수입니다.
for i in range(a):
b = int(sys.stdin.readline())
while count<=b:
s.append(count)
op.append('+')
count+=1
변수 b에 입력값이 들어오고, b와 count가 같아질때까지 올려가면서 s에 넣어줍니다.
if s[-1] == b:
s.pop()
op.append('-')
같아지면 pop을 합니다. pop은 가장 최근의 값을 꺼내옵니다. 최근 값을 다른 list에 넣어 놓는다고 생각하면 됩니다.
계속 반복하는데, 다음에 오는 값이 count보다 크게 될 경우에는 실패합니다.
else:
print("NO")
er=1
break
er값을 1로 만들어줍니다. 이것이 없이 아래의 for문을 돌리면 실패한 값의 op안의 값들도 출력이 되기 때문입니다.
if er==0:
for i in op:
print(i)
er이 0일 때의 값만 가지고 출력합니다.
'IT > 코딩' 카테고리의 다른 글
(파이썬) 백준 11655번 ROT13 파이썬 풀이, Python3 (0) | 2022.08.10 |
---|---|
(파이썬) 백준 10799번 쇠막대기 파이썬 python3 (0) | 2022.08.07 |
(파이썬) 백준 1158 - 요세푸스 문제 python3 (0) | 2022.08.05 |
(파이썬) 백준 1406 - 에디터 python3 (0) | 2022.08.04 |
(파이썬) 백준 9012번 - 괄호() (0) | 2022.08.03 |
Comments