본문 바로가기
공부-코딩테스트/Java-코딩테스트-편의기능

자바 리스트 특정 위치에 다른 리스트를 삽입하는 방법

by 령과 2022. 8. 8.

배열.addAll(index,다른 배열);

  • 배열의 index위치에 다른 배열 값들을 끼워 넣는다.
  • 아래는 A.addAll(2,B)일 경우

SWEA의 1228번 문제에서 이용하였다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Solution_SWEA_1228 {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		
		for(int tc = 1; tc <= 10; tc++) {
			int N = Integer.parseInt(br.readLine());
			List<Integer> table = new ArrayList<>();// = Arrays.stream(br.readLine().split(" ")).mapToInt(e->Integer.parseInt(e)).boxed().collect(Collectors.toList());
			String[] tmp = br.readLine().split(" ");
			for(int i = 0 ; i<tmp.length;i++) {
				table.add(Integer.parseInt(tmp[i]));
			}
			int M = Integer.parseInt(br.readLine());
			String[] table2 = br.readLine().split(" ");
			for(int i = 0 ; i < table2.length;i++) {
				if(table2[i].equals("I")) {
					int x = Integer.parseInt(table2[++i]);
					int y = Integer.parseInt(table2[++i]);
					
					List<Integer> insert = new ArrayList<>();
					
					for(int j=0;j<y;j++) {
						//table.add(x+j,Integer.parseInt(table2[++i]));
						insert.add(Integer.parseInt(table2[++i]));
					}
					table.addAll(x,insert);
					
				}
			}
			sb.append("#"+tc+" ");
			for(int i = 0 ; i<10;i++) {
				sb.append(table.get(i)+" ");
			}
			sb.append("\n");
		}
		System.out.println(sb);
	}
}

댓글