[프로그래머스 코딩테스트] 정렬 - K 번째 수

EUN JY·2022년 2월 17일
1

Coding Test

목록 보기
5/9

2차원 배열이 갑자기 나와서 순간 당황했지만 침착하게… 풀어보았다.

근데 아이패드 키보드에는 왜 마크다운 코드 블록 쓰는 기호가 없는거야…

import java.util.*;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int[] answer = {};
        List<Integer> answerList = new ArrayList<>();
        
        for (int[] command : commands) {
            int[] tempArr = Arrays.copyOfRange(array, command[0]-1, command[1]);
            Arrays.sort(tempArr);
            answerList.add(tempArr[command[2]-1]);
        }
        
        answer = answerList.stream().mapToInt(i->i).toArray();
        return answer;
    }
}

Arrays.copyOfRange([배열명], [시작 인덱스], [종료 인덱스+1])를 이용해 배열을 복사해둔 뒤,
Arrays.sorts()를 이용해 정렬했다.

배열 크기를 매번 다시 설정해 값을 추가하는 것보다 List.add() 후 배열 형태로 바꾸는 게 효율적이라고 한다.

answerList.stream().mapToInt(i->i).toArray(); 를 작성하여 List에 담았던 결과값을 배열로 반환했다.

String 형태였다면 아래처럼 작성해도 된다.

answer = new int[answerList.size()];
answerList.toArray(answer);
profile
개린이

0개의 댓글