Python/BAEKJOON

[백준] 2346번 풍선 터트리기(python)

Magin 2022. 2. 28. 22:37
728x90

문제)

 

알고리즘)

-첫시도

deque의 특징을 살려 pop(), popleft(), append(), insert() 등으로 조건에 맞게 배열을 회전시킨 후 결과 출력

 

-아래 코드-

  첫 시도의 pop(), popleft(), append(), insert() 등을 rotate()를 활용해 한번에 구현 가능

 

ex)   a = [1, 2, 3, 4, 5]

a.rotate(1)   

=> [5, 1, 2, 3, 4]

a.rotate(-2)

=> [2, 3, 4, 5, 1]

 

*주의사항

배열의 회전시 pop()한 데이터 인지하며 회전 수 설정

코드)

#풍선 터트리기
import sys
from collections import deque
input = sys.stdin.readline

n = int(input())
q = deque(enumerate(map(int, input().split())))

while q:
    idx, data = q.popleft()
    print(idx+1, end=" ")

    if data < 0:# rotate(음수) => index = 0 값 뒤로 보내기 
        q.rotate(-data)

    elif data > 0:# rotate(양수) => index = -1 앞으로 당기기
        q.rotate(-(data-1))
728x90