본문 바로가기

코딩 테스트/문제

[K번째 수] Arrays.copyOfRange

programmers.co.kr/learn/courses/30/lessons/42748

 

코딩테스트 연습 - K번째수

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

오늘은 'K번째 수' 라는 코딩테스트 연습문제를 풀면서 배운것 기록입니다.

 

코딩 입문자인 저에겐 아직 어려운 문제이기에,

 

다른사람의 풀이를 보았더니 Arrays.copyOfRange 메소드를 이용하셨더라구요.

 

 

Arrays.copyOfRange(복사하고자 하는 배열, 시작위치, 배열크기)

 

 배열복사 메소드

 

 전달받은 배열의 지정된 범위에 해당하는 요소만 새로운 배열로 복사하여 반환한다.

 

예제

int[] arr1 = { 1, 2, 3, 4, 5, };

int[] arr3 = Arrays.copyOfRange(arr1, 0, 3);

  for( int  i=0; i<arr3.length; i++) {

     System.out.println(arr3[i] + " ");

  }

 

 출력되는 값은  1 2 3

 

시작위치 index[0] 이기에 1 이고, 배열크기는 3 이라서 index[0]~[2]  

 

 

그리고 복사받는 배열(arr3)이 복사하려는 배열(arr1)보다 범위가 크게 지정되면

 

해당하는 초과범위는 배열타입의 default값이 들어갑니다

 

예제

int[] arr1 = { 1, 2, 3, 4, 5 }; // 크기 5

int[] arr3 = Arrays.copyOfRange(arr1, 0, 6); // index[0], 크기는 6

  for(int i=0; i<arr3.length; i++) {

    System.out.println(arr3[i] + " ");

  }

 

출력되는 값은 1 2 3 4 5 0  원래 배열의 크기5를 초과했기에 default값으로 0 이 들어감.

 

끝~~~~