[백준] 풍선 터뜨리기

 

문제

class Node():
    def __init__(self, value, step, next_node = None, prev_node = None):
        self.value = value
        self.step = step
        self.next_node = next_node
        self.prev_node = prev_node

n = int(input())
move = list(map(int, input().split()))

head = Node(1, move[0])
tail = Node(n, move[-1])
cur = head

for i in range(2, n):
    new_node = Node(i, move[i-1])
    cur.next_node = new_node
    new_node.prev_node = cur
    cur = new_node
cur.next_node = tail
tail.prev_node = cur
head.prev_node = tail
tail.next_node = head

ls = []
cur = head
for _ in range(n):
    ls.append(cur.value)
    step = cur.step
    cur.next_node.prev_node = cur.prev_node
    cur.prev_node.next_node = cur.next_node
    
    cur = cur.next_node if step > 0 else cur.prev_node
    for _ in range(abs(step) - 1):
        cur = cur.next_node if step > 0 else cur.prev_node
    
    
print(" ".join(map(str, ls)))