알고리즘/백준
[프로그래머스] LV1.정렬 K번째수 풀이 소스코드
i5
2022. 1. 20. 23:47
반응형
분류 코딩테스트 > 연습 > 정렬 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;
}
}
끝.
반응형