티스토리 뷰

문제

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

 

프로그래머스

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

programmers.co.kr

언어

자바 Java

로직

주의할 점!

배열을 정렬을 한 상태에서 k번째 수를 뽑아서는 안됩니다. 

범위 내의 숫자 뽑기

자바에서 제공하는 내장 메서드를 사용합니다. 자바에서 배열을 다룰 때 마지막 인덱스는 다루지 않듯이 copyOfRange 메서드도 동일합니다. 따라서 end의 경우 -1을 하지 않습니다.

// Arrays.copyOfRange(복사할 배열, 시작 인덱스, 끝 인덱스)

int start = command[0] - 1;
int end = command[1];
int pick = command[2] - 1;

int[] arr = Arrays.copyOfRange(array, start, end);

정렬

Arrays.sort(arr);

수 뽑기

순서대로 저장하면 됩니다.

answer[i++] = arr[pick];

코드

class Solution {
    public int[] solution(int[] array, int[][] commands) {

        int[] answer = new int[commands.length];
        int i = 0;

        for (int[] command : commands) {
            int start = command[0] - 1;
            int end = command[1];
            int pick = command[2] - 1;

            int[] arr = Arrays.copyOfRange(array, start, end);

            Arrays.sort(arr);

            answer[i++] = arr[pick];
        }

        return answer;
    }
}

 

Total
Today
Yesterday
최근에 올라온 글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30