본문 바로가기
알고리즘/프로그래머스

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

by 김홍중 2021. 2. 9.

1. 문제

프로그래머스 K번째수

programmers.co.kr/learn/courses/30/lessons/42748

 

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

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

programmers.co.kr

 

2. 설명

 

3. 접근

 

  • 임시 배열에 깊은복사합니다.
  • 임시배열을 주어지는 인덱스 범위내에서 정렬합니다.
  • 얻고자하는 임시배열의 인덱스에 해당하는 값을 정답에 저장합니다.
  • 정답을 리턴합니다.

 

 

 

4. 코드

import java.util.Arrays;

public class Solution {
    public int[] solution(int[] numbers, int[][] commands) {
        int startIdx = 0;
        int endIdx = 0;
        int targetIdx = 0;

        int numberLen = numbers.length;
        int commandsLen = commands.length;

        int[] answer = new int[commandsLen];
        int[] temp = new int[numberLen];

        for (int i = 0; i < commandsLen; i++) {

            for (int j = 0; j < numberLen; j++) {
                temp[j] = numbers[j];
            }

            startIdx = commands[i][0] - 1;
            endIdx = commands[i][1];
            Arrays.sort(temp, startIdx, endIdx);

            targetIdx = commands[i][2] - 1;
            answer[i] = temp[startIdx + targetIdx];
        }
        return answer;
    }
}

댓글