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