알고리즘

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

데메즈 2022. 1. 12. 22:26
728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/42748?language=java 

 

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

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

programmers.co.kr

import java.util.*;
class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int number = commands.length;
        int[] answer = new int[number];
        
        for(int a=0; a < number; a++){
            int i = commands[a][0];
            int j = commands[a][1];
            int k = commands[a][2];
            
            int[] temp = Arrays.copyOfRange(array, i-1, j);
            Arrays.sort(temp);
            answer[a] = temp[k-1];
        }
        
        return answer;
    }
}

i번째부터 j번째까지 복사하여 temp로 옮기고 temp를 정렬해서 k번째를 answer[a]에 넣어주었다

 

copyOfRange(arr,startidx,endidx)
이 메소드는 첫 번째 매개변수로 복사할 원본 배열을 받고, 두 번째 매개변수로 시작 인덱스, 세 번째 매개변수로 마지막 복사될 배열 인덱스+1을 받아서 원본 배열과 같은 타입의 복사된 새로운 배열을 반환해준다.

sort(arr)
이 메소드는 매개변수로 배열을 받고 배열을 오름차순으로 정렬해준다.

 

 

728x90
반응형