Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

전공공부

[BOJ_2346] 풍선 터트리기 본문

Study/Problem Solving

[BOJ_2346] 풍선 터트리기

monitor 2023. 10. 23. 07:10

설명


사실 Deque의 사용을 생각해내는 것 보다 이것을 제출할때 메모리 초과 등의 오류를 잡는 것이 힘들다. 

 

코드


package Data_Structure;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.*;

public class BOJ_2346 {
    static class Balloon {
        int idx; // 풍선 번호
        int value; // 적혀있는 값

        public Balloon(int idx, int value) {
            this.idx=idx;
            this.value=value;
        }
    }

    public static void main(String[] args) throws Exception{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        String str = in.readLine();
        int N = Integer.parseInt(str);
        str = in.readLine();
        Deque<Balloon> dq = new ArrayDeque<>();
        StringBuilder sb = new StringBuilder();
        String[] srr = str.split(" ");
        for(int i = 0; i < N; i++) {
            dq.add(new Balloon(i,Integer.parseInt(srr[i])));
        }

        while(N-- > 0) {

            sb.append(dq.getFirst().idx + 1+" ");

            int go = dq.poll().value;

            if(dq.isEmpty()){
                break;
            }

            if(go > 0) {
                for(int i = 0; i < go - 1; i++)
                    dq.addLast(dq.pollFirst());
            }
            else {
                for(int i = 0; i < Math.abs(go); i++)
                    dq.addFirst(dq.pollLast());
            }
        }
        System.out.println(sb.toString());
    }
}
 

2346번: 풍선 터뜨리기

1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선

www.acmicpc.net

 

'Study > Problem Solving' 카테고리의 다른 글

[BOJ_1620] 나는야 포켓몬 마스터 이다솜  (0) 2023.10.25
[BOJ_1966] 프린터 큐  (1) 2023.10.24
[BOJ_1935] 후위표기식2  (1) 2023.10.22
[BOJ_10866] 덱  (0) 2023.10.21
[BOJ_9012] 괄호  (1) 2023.10.21