백준|2346번|풍선 터뜨리기

README·2022년 7월 31일
0

파이썬 PS풀이

목록 보기
75/136

문제설명
1번부터 n번까지의 풍선을 1번부터 터트려서 그 안에 나와있는 숫자만큼 이동한뒤에 그 풍선을 터트릴 때 풍선이 터지는 순서를 출력하는 문제입니다.

작동 순서
1. 풍선의 개수를 입력받습니다.
2. deque에 풍선의 번호를 입력합니다.
3. 배열에 풍선 안에 적힌 숫자들을 저장합니다.
4. 풍선을 1번부터 터트린 뒤 그 안에 들어있는 숫자에 따라 deque를 회전시키고 다음 풍선을 터트립니다.

소스코드

from collections import deque
import sys

N = int(sys.stdin.readline())
n = deque()
arr = list(map(int, sys.stdin.readline().split()))
for i in range(1, N+1):
    n.append(i)

count = 0
while True:
    if len(n) == N:
        output = n.popleft()
    else:
        if arr[output-1] > 0:
            output = n.popleft()
        else:
            output = n.pop()

    if len(n) == 0:
        break
    print(output, end=" ")

    if arr[output-1] > 0:
        while count < arr[output-1]-1:
            count += 1
            n.append(n.popleft())
    else:
        while count > arr[output-1]+1:
            count -= 1
            n.appendleft(n.pop())
    count = 0
print(output, end="")
profile
INTP 개발자 지망생

0개의 댓글