1 ๋ถ„ ์†Œ์š”

๐Ÿ“ [D3_1229] ์•”ํ˜ธ๋ฌธ2

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringTokenizer;
 
public class Solution {
    static StringTokenizer st;
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
 
        for (int T = 1; T <= 10; T++) {
            sb.append("#");
            sb.append(T).append(" ");
 
            // ์›๋ณธ ์•”ํ˜ธ๋ฌธ ๊ธธ์ด
            int N = Integer.parseInt(br.readLine());
            st = new StringTokenizer(br.readLine(), " ");
 
            ArrayList<Integer> arr = new ArrayList<Integer>();
 
            // ์›๋ณธ ์•”ํ˜ธ๋ฌธ
            for (int i = 0; i < N; i++) {
                arr.add(Integer.parseInt(st.nextToken()));
            }
 
            // ๋ช…๋ น์–ด ๊ฐœ์ˆ˜
            int cnt = Integer.parseInt(br.readLine());
 
            String[] arr_2 = new String[cnt];
 
            // 'I,D'๋ฅผ ๊ฒฝ๊ณ„๋กœ ๋‚˜๋ˆ„๊ธฐ -> ๋ฐฐ์—ด arr_2์— ์ €์žฅ
            st = new StringTokenizer(br.readLine(), "I|D");
            for (int i = 0; i < cnt; i++) {
                arr_2[i] = st.nextToken();
            }
 
            // y๊ฐœ์˜ ์ˆซ์ž๋งŒํผ arr_int ๋ฐฐ์—ด์— ์ €์žฅ
            for (int i = 0; i < cnt; i++) {
                String[] arr_int = arr_2[i].split(" ");
 
                // D์ธ ๊ฒฝ์šฐ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ 3 ( ๊ณต๋ฐฑ, x, y)
                if (arr_int.length == 3) {
                    // ์‚ญ์ œํ•  ์œ„์น˜ (x๊ฐ’)
                    int loc = Integer.parseInt(arr_int[1]);
                     
                    int temp = 0;
                    // x ์œ„์น˜์—์„œ y ๊ฐœ์ˆ˜ ๋งŒํผ ์‚ญ์ œํ•˜๊ธฐ
                    for(int j=0; j<Integer.parseInt(arr_int[2]); j++) {
                        arr.remove(loc);
                         
                    }
                     
                }
 
                // I์ธ๊ฒฝ์šฐ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ 4์ด์ƒ
                else {
                    // ์ถ”๊ฐ€๋  ์œ„์น˜ (x๊ฐ’)
                    int loc = Integer.parseInt(arr_int[1]);
 
                    // loc์œ„์น˜ ๊ณ„์† ์ฆ๊ฐ€ํ•ด์ค„ ๋ณ€์ˆ˜
                    int temp = 0;
                    // x ์œ„์น˜์—์„œ y ๊ฐœ์ˆ˜ ๋งŒํผ ์ถ”๊ฐ€์‹œํ‚ค๊ธฐ
                    for (int j = 3; j < 3 + Integer.parseInt(arr_int[2]); j++) {
                        arr.add(loc + temp, Integer.parseInt(arr_int[j]));
                        temp++;
                    }
                }
            }
 
            for (int i = 0; i < 10; i++) {
                sb.append(arr.get(i)).append(" ");
            }
            sb.append("\n");
        }
 
        System.out.println(sb);
 
    }
}

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

์ „์ฒด ๊ฐ’๋“ค์„ โ€˜Iโ€™์™€ โ€˜Dโ€™๋ฅผ ๊ฒฝ๊ณ„๋กœ ๋‚˜๋ˆ„๊ณ 
โ€˜Dโ€™ ๋ฐฐ์—ด์˜ ํŠน์ง•์€ ๊ธธ์ด๊ฐ€ 3์œผ๋กœ ๊ณ ์ •์ธ ๊ฒƒ์ด๋‹ค.
๊ทธ ํŠน์ง•์„ ์ด์šฉํ•ด โ€˜Iโ€™๋Š” ์ถ”๊ฐ€๋ฅผ โ€˜Dโ€™๋Š” ์‚ญ์ œ๋ฅผ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘์„ฑํ–ˆ๋‹ค.
์—ฌ๊ธฐ์„œ ์•ฝ๊ฐ„ ์ฃผ์˜ํ•  ์ ์€ โ€˜Dโ€™๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ArrayList๋Š” ์‚ญ์ œ๋˜๋ฉด ํ•œ ์นธ์”ฉ ์ž๋™์œผ๋กœ ๋Œ•๊ฒจ์ง„๋‹ค. ๊ทธ๋ž˜์„œ ์œ„์น˜๋ฅผ ์˜ฎ๊ฒจ์ค„ ํ•„์š”๊ฐ€ ์—†๋‹ค.