개발 무지렁이

[문제풀이] Level1 K번째 수 본문

코딩 테스트/문제풀이

[문제풀이] Level1 K번째 수

Gaejirang-e 2023. 3. 1. 13:14

K번째 수


  🪅 배열을 간단하게 자르는 메서드를 알고 있느냐 => Arrays.copyOfRange()
  🪅 간단하게 정렬하는 메서드를 알고 있는냐 => Arrays.sort()

💡 문제 접근 과정
처음에 i번째 숫자부터 j번째 숫자까지 자르라고 했을 때,
무심코 String의 내장메서드 substring()을 이용하면 되지라는 생각을 했는데
잘 보니 배열을 자르는 것(?)이었다.
배열을 간단하게 자르는 메서드를 검색해보니 Arrays.copyOfRange(배열, 시작인덱스, 끝인덱스+1)를 찾을 수 있었고,
방식은 substring과 똑같이 동작했다
즉, 시작인덱스는 시작하고자 하는 인덱스부터 넣는 것이 맞으나,
끝인덱스는 자르고자하는 인덱스보다 +1을 해야 자르고자하는 인덱스까지 잘린다.

import java.util.*;
class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = new int[commands.length];

        int k = 0;
        for(int[] command : commands) {
            int start = command[0]-1;
            int end = command[1];
            int th = command[2]-1;
            int[] arr = Arrays.copyOfRange(array, start, end);
            Arrays.sort(arr);
            answer[k] = arr[th];
            k++;
        }
        return answer;
    }
}
Comments