[백준/Java] 2346 풍선 터뜨리기

AndBlack99·2026년 1월 14일

import java.util.Deque;
import java.util.ArrayDeque;
import java.util.StringTokenizer;

import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;

class Main {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());

        StringTokenizer st = new StringTokenizer(br.readLine());;

        int[] num = new int[N];
        Deque<Integer> deque = new ArrayDeque<>();

        StringBuilder sb = new StringBuilder();

        for(int i=0;i<N;i++) {
            num[i] = Integer.parseInt(st.nextToken());
            deque.addLast(i+1);
        }

        for(int i=0;i<N;i++) {
            if(deque.size() == 1) {
                sb.append(deque.peek() + " ");
                break;
            }

            int top = deque.pollFirst();
            int M = num[top - 1];
            
            sb.append(top + " ");

            if(M > 0) {
                for(int j=1;j<M;j++) {
                    int k = deque.pollFirst();
                    deque.addLast(k);
                }
            }
            else {
                for(int j=0;j>M;j--) {
                    int k = deque.pollLast();
                    deque.addFirst(k);
                }
            }
        }
        
        System.out.println(sb);
    }
}

profile
Back-end Developer

0개의 댓글