[정렬] K번째 수_Java

컴투루·2022년 7월 1일
0

정렬

목록 보기
1/1

코딩테스트 고득점 Kit_정렬

🔥 K번째 수 🔥


👀 문제

배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려한다.
배열 array,[i,j,k]를 원소로 가진 2차원배열 commands가 매개변수로 주어질 때, 결과를 배열에 담아 return하는 solution을 완성해보자


✔️ 조건

  • array의 길이는 1 이상 100 이하입니다.
  • array의 각 원소는 1 이상 100 이하입니다.
  • commands의 길이는 1 이상 50 이하입니다.
  • commands의 각 원소는 길이가 3입니다.

👩‍💻 입력 & 🧙 출력

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

🙋‍♀️ 풀이

import java.util.Arrays;
import java.util.*;
import java.util.stream.Collectors;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];
        //List<Integer>list = new ArrayList<>(); 
        
        for(int i=0;i<commands.length;i++){
            int[] n = Arrays.copyOfRange(array,commands[i][0]-1,commands[i][1]);
            Arrays.sort(n);
            answer[i] = n[commands[i][2]-1];
            //list = Arrays.stream(n).boxed().collect(Collectors.toList());
            //list.sort(Comparator.naturalOrder());                
            //answer[i] = list.get(commands[i][2]-1);
        }

        return answer;
    }
}

주석이 많은 이유는 너무 쓸데없는 짓을 많이 했기 때문이다.
굳이 list로 바꾸지 않아도 되는 것을 바꿔서 문제를 해결해버려서 점수도 1점을 받았다.

제출하는데 급한것이 아니라 잘 짜여진 코드인지 한번 더 확인하고 제출해야겠다.

배열 복사하기

  • Arrays.copyOfRange(oldArray, startIndex, endIndex)
profile
맘 먹으면 못할 게 없지

0개의 댓글