기록하는 개발자

[프로그래머스][JAVA] K번 째 수 본문

Algorithm

[프로그래머스][JAVA] K번 째 수

밍맹030 2021. 6. 13. 15:07
728x90

import java.util.*;
class Solution {
    public int[] solution(int[] array, int[][] commands) {
        //주어지는 배열 개수와 같은 길이로 answer 배열 크기 초기화
        int[] answer = new int[commands.length]; 
        
        for(int i=0; i<commands.length; i++){
            int[] temp = Arrays.copyOfRange(array, commands[i][0]-1, commands[i][1]);
            Arrays.sort(temp);
            answer[i]=temp[commands[i][2]-1];
        }
        
        return answer;
    }
}

 

Arrays.copyOfRange(array, start, end)
 - array의 start부터 end 인덱스 전까지를 배열로 복사하여 반환한다.
 - 원본 배열과 같은 타입의 배열을 복사하여 반환하므로 원본 배열은 변하지 않는다.

 

예시

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

int new_array1= Arrays.copyOfRange(base_array, 0, 3);
int new_array2= Arrays.copyOfRange(base_array, 1, 3);
int new_array3= Arrays.copyOfRange(base_array, 2, 5);


for(int i=0; i<new_array1.length ; i++)
	System.out.print(new_array1[num]+" ");
    
for(int i=0; i<new_array2.length ; i++)
	System.out.print(new_array2[num]+" ");

for(int i=0; i<new_array3.length ; i++)
	System.out.print(new_array3[num]+" ");
    
- - - - - - - - - - - - - - - - - - - - - - - - - - - - 
결과
1 2 3
2 3
3 4 5
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/courses/30/lessons/42748

 

728x90