본문 바로가기
코딩테스트 문제집/Programmers(Lv1)

[Programmers] Lv1: K번째 수

by cogito30 2025. 2. 11.

문제

- 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42748

 

풀이

(풀이1)

더보기
import java.util.Arrays;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];
        
        for (int c = 0; c < commands.length; c++) {
            int i = commands[c][0];
            int j = commands[c][1];
            int k = commands[c][2];
            
            int[] slicedArr = Arrays.copyOfRange(array, i - 1, j);
            Arrays.sort(slicedArr);
            answer[c] = slicedArr[k - 1];
        }
        return answer;
    }
}

(풀이2)

더보기
import java.util.*;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];
        
        for (int i = 0; i < commands.length; ++i) {
            int start = commands[i][0];
            int len = commands[i][1] - commands[i][0] + 1;
            int k = commands[i][2];
            
            int[] tmp_arr = new int[len];
            for (int j = 0; j < len; ++j) {
                tmp_arr[j] = array[start +j - 1];
            }
            
            Arrays.sort(tmp_arr);
            
            answer[i] = tmp_arr[k - 1];
        }
        
        return answer;
    }
}