Algorithm/inflearn

#★두 배열 합치기

마닐라 2021. 9. 13. 20:43

 

 

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public ArrayList<Integer> solution(int n, int m, int[] a, int[] b){
        ArrayList<Integer> answer = new ArrayList<>();
        int p1 = 0, p2 = 0; //포인터
        while (p1 < n && p2 < m) { // 둘 중 배열이 끝나면 끝
            if(a[p1] < b[p2]) answer.add(a[p1++]);
            else answer.add(b[p2++]);
        }

        while (p1 < n) answer.add(a[p1++]); //나머지 넣기
        while (p2 < m) answer.add(b[p2++]); //나머지 넣기

        return answer;
    }

    public static void main(String[] args){
        Main T = new Main();
        Scanner kb =new Scanner(System.in);
        int n = kb.nextInt();
        int[] a = new int[n];
        for(int i = 0; i < n; i++) {
            a[i] = kb.nextInt();
        }
        int m = kb.nextInt();
        int[] b = new int[m];
        for(int i = 0; i < m; i++) {
            b[i] = kb.nextInt();
        }

        for(int x : T.solution(n, m, a, b)) System.out.print(x + " ");

    }
}

 

'Algorithm > inflearn' 카테고리의 다른 글

★연속 부분수열  (0) 2021.09.14
★공통원소 구하기  (0) 2021.09.13
★★멘토링  (0) 2021.09.10
★임시반장 정하기  (0) 2021.09.10
★봉우리  (0) 2021.09.10