1 분 소요

백준 배열합치기

  • 문제 https://www.acmicpc.net/problem/11728
import java.util.ArrayList;  
import java.util.List;  
import java.util.Scanner;  
  
public class Main {  
    public static void main(String[] args) {  
        // input  
        Scanner scanner = new Scanner(System.in);  
        int N = scanner.nextInt(); // 배열 A의 사이즈  
        int M = scanner.nextInt(); // 배열 B의 사이즈  
  
        List<Integer> A = new ArrayList<>();  
        for(int i = 0; i < N; i++){  
            int n = scanner.nextInt();  
            A.add(n);  
        }  
  
        List<Integer> B = new ArrayList<>();  
        for (int i = 0; i < M; i++){  
            int n = scanner.nextInt();  
            B.add(n);  
        }  
  
//        A.forEach( e-> System.out.println(e + " "));  
//        B.forEach( e-> System.out.println(e + " "));  
  
        // logic        List<Integer> result = new ArrayList<>();  
  
        int i = 0, j = 0; // 배열 A의 인덱스, 배열 B의 인덱스  
        while(i < N && j < M){  
            int a = A.get(i);  
            int b = B.get(j);  
  
            if (a <= b) {  
                result.add(a);  
                i++;  
            } else {  
              result.add(b);  
                j++;  
            }  
        }  
  
        for (; i < N; i++){  
            result.add(A.get(i));  
        }  
        for (; j < M; j++){  
            result.add(B.get(j));  
        }  
  
        // output  
        StringBuilder sb = new StringBuilder();  
        for (int e : result) {  
            sb.append(e + " ");  
        }  
        System.out.println(sb.toString());  
    }  
}
  • .nextInt() 는 공백 단위로 끊어서 읽는다.
  • .get() 은 인덱스를 가져온다.

##  ArrayList.get() 예제

String[] fruitsArray = {"apple", "banana", "kiwi", "mango"};
ArrayList<String>  fruits = new ArrayList<>(Arrays.asList(fruitsArray));

System.out.println("get(0) : " + fruits.get(0));
System.out.println("get(2) : " + fruits.get(2));

출처 : https://codechacha.com/ko/java-collections-arraylist-get/

댓글남기기