반응형

분류    코딩테스트 > 연습 > 정렬 K번째수

문제

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

 

풀이

기법 1. Java의 Arrays.copyOfRange를 써서 (C에서 memcpy랑 비슷함) 배열을 추출했다.

기법 2. 선택정렬을 써서, 추출한 배열을 정렬했다.

소스코드

링크 : 

import java.util.Arrays;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        // a, b, c
        // a부터 b까지 자르고
        // c번째를 출력
        int r = commands.length;
        int[] answer = new int[r];
        for (int i = 0; i < r; i++ ) {
        	int start = commands[i][0];
        	int end = commands[i][1];
        	int idx = commands[i][2];
        	
        	int[] copyOfRange = Arrays.copyOfRange(array, start - 1, end); // start 포함 ~ end 포함
        	
        	// sort
        	for (int k = 0; k < copyOfRange.length - 1; k++) {
        		for (int l = k + 1; l < copyOfRange.length; l++) {
        			if (copyOfRange[k] > copyOfRange[l]) {
        				int temp = copyOfRange[k];
        				copyOfRange[k] = copyOfRange[l];
        				copyOfRange[l] = temp;
        			}
				}
			}
        	answer[i] = copyOfRange[idx - 1];
        }
        return answer;
    }
}

 

끝.

반응형