Hyunebee

배열 합치기 본문

Java/코테

배열 합치기

Hyunebee 2022. 5. 18. 19:35

배열의 정렬 => n^2 ~ nlogn

투포인터 를 사용해서 n으로 문제 해결하기 

 

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

      int input2 = in.nextInt();
      int[] b = new int[input2];

      for(int i = 0; i < input2; i++){
        b[i] = in.nextInt();
      }


      Main T = new Main();

      for(int x :  T.solution(input1,input2,a,b)){
        System.out.print(x + " ");
      }
    }

    public ArrayList<Integer> solution(int n,int m,int[] a, int[] b){
      ArrayList<Integer> arrayList = new ArrayList<>();

      int p1 = 0;
      int p2 = 0;

      //각 포인터가 배열의 길이를 넘지 안을때까지
      while(p1<n && p2<m){
        if(a[p1] < b[p2]){
          arrayList.add(a[p1++]);
        }else {
          arrayList.add(b[p2++]);
        }
      }

      //배열이 남아 있다면
      while (p1 < n){
        arrayList.add(a[p1++]);
      }

      //배열이 남아 있다면
      while (p2 < m){
        arrayList.add(b[p2++]);
      }

      return arrayList;
    }
}

'Java > 코테' 카테고리의 다른 글

연속해서 가장 긴 수  (0) 2022.05.19
K가 되는 수  (0) 2022.05.18
3주차 코딩테스트 4번  (0) 2022.05.05
3주차 코딩테스트 3번  (0) 2022.05.05
3주차 코딩테스트 2번  (0) 2022.05.05