‡ CODING TEST STUDY ‡/º 프로그래머스

[프로그래머스 | Java Lv.1] [복습] K번째 수 (정렬)

Trudy | 송연 2024. 6. 11. 01:53

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


접근

이번에는 전에 이 문제 스터디하는 도중에 알게 된 Arrays.copyOfRange를 사용해서 풀어봤다.

 

Arrays.copyOfRange

Arrays.copyOfRange(배열, 시작 인덱스, 마지막 인덱스 +1) 

 

안찾아보고 하다가 마지막 인덱스+1 안해주다가 이상한 짓 했다.. 외우기! 


 

최종 코드

package week6.baek.sort;

import java.util.ArrayList;
import java.util.Arrays;

public class KNum {
    public static ArrayList<Integer> solution(int[] array, int[][] commands) {
        ArrayList<Integer> result = new ArrayList<>();

        for (int[] command : commands){
            int[] copy = Arrays.copyOfRange(array, command[0] -1, command[1]);
            Arrays.sort(copy);
            result.add(copy[command[2]-1]);
        }

        return result;
    }

    public static void main(String[] args) {
        int[] array = {1, 5, 2, 6, 3, 7, 4};
        int[][] commands = {{2, 5, 3}, {4, 4, 1}, {1, 7, 3}};
        System.out.println(solution(array, commands));
    }
}