카테고리 없음

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

nayoon 2022. 6. 26. 21:35

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

포인트

Collections 클래스의 sort 함수를 사용했다.

직접 정렬을 구현하는 것보다 빠를 것이라고 생각했다. (이 부분에 대해서는 좀 더 찾아보아야 할 것 같다)

 

개선 여지

1. Array.asList 메소드를 사용해서 List 객체에 int[] 배열을 넣을 수 있다. (코드 절약)

2. 향상된 for문을 통해 commands의 길이를 굳이 알 필요없이 구현할 수 있다. (코드 절약)

 

코드

import java.util.*;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        
        int i, j, k;
        List<Integer> arr_list;
        int n = commands.length;
        int[] answer = new int[n];
        
        for(int __ = 0; __ < n; __++) {
            arr_list = new ArrayList<>();
            i = commands[__][0];
            j = commands[__][1];
            k = commands[__][2];
            
            for(int a = i - 1; a < j; a++) {
                arr_list.add(array[a]);
            }
            
            Collections.sort(arr_list);
            answer[__] = arr_list.get(k - 1);
        }
        
        return answer;
    }
}