728x90
반응형
https://www.acmicpc.net/problem/1874
1874번: 스택 수열
1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.
www.acmicpc.net
code
n = int(input())
count = 0 #스택에 쌓을 변수
stack = [] #스택 역활
result = [] #출력할 내용 저장
message = True #연산 불가능 판단
for i in range(n):
x = int(input())
while count < x: #만약 입력수보다 스택에 쌓인 변수가 작으면
count += 1
stack.append(count) #스택에 오름차순으로 쌓음
result.append("+") #쌓을때마다 +
if stack[-1] == x: #스택의 끝값이 입력변수와 같으면
stack.pop() #제거후 -출력
result.append("-")
else:
message = False #다르면 연산불가능판단
if message == False:
print("NO")
else:
print("\n".join(result))
입력받은 수보다 작으면 스택에 숫자를 쌓으면서 +를 출력하다
만약 스택 마지막수와 입력변수가 같다면 -를 출력하고 해당 수를 제거하는 방법으로 처리했다.
728x90
반응형
'알고리즘 > 백준[baekjoon]' 카테고리의 다른 글
[baekjoon] 백준 4949번 : 균형잡힌 세상 (by python 파이썬) (0) | 2022.04.06 |
---|---|
[baekjoon] 백준 2805번 : 나무 자르기 (by python 파이썬) (0) | 2022.04.05 |
[baekjoon] 백준 1966번 : 프린터 큐 (by python 파이썬) (0) | 2022.04.03 |
[baekjoon]백준 1654번 : 랜선 자르기 (by python 파이썬) 이분탐색 (0) | 2022.03.30 |
[baekjoon]백준 11866번 : 요세푸스 문제 0 (by python 파이썬) (0) | 2022.03.28 |