알고리즘 문제/자료구조 문제

(백준 자료구조 문제풀이) 2346번 풍선 터트리기

재코딩 2022. 7. 19. 18:29
반응형

문제

 

문제 링크

 

코드

case 1 (rotate)

import sys
from collections import deque
input = sys.stdin.readline


n = int(input())
balloons = deque(enumerate(map(int, input().split())))
result = list()

while balloons:
    x, value = balloons.popleft()
    result.append(x+1)

    if value > 0:
        balloons.rotate(-(value - 1))
    else:
        balloons.rotate(-value)

print(*result)

 

case 2 (append, pop 활용)

 

import sys
from collections import deque
input = sys.stdin.readline


n = int(input())
balloons = deque(enumerate(map(int, input().split())))
result = list()

while balloons:
    x, value = balloons.popleft()
    result.append(x+1)

    if value > 0:
        for _ in range(value-1):
            if len(balloons) != 0:
                balloons.append(balloons.popleft())
    else:
        for _ in range(abs(value)):
            if len(balloons) != 0:
                balloons.appendleft(balloons.pop())

print(*result)
반응형