알고리즘/백준
[프로그래머스] LV1.정렬 K번째수 풀이 소스코드
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;
}
}
끝.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 24060번 알고리즘 수업 - 병합 정렬 1 (C++) ** (0) | 2023.12.26 |
---|---|
[백준] 1152번 단어의 개수 (C++) * (1) | 2023.12.21 |
[백준] 10809번 알파벳 찾기 (C++) * (0) | 2023.12.21 |