https://programmers.co.kr/learn/courses/30/lessons/42748
방법 1
\
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
31
|
import java.util.Arrays;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for (int i = 0; i < commands.length; i++) {
int iStart = commands[i][0];
int iEnd = commands[i][1];
int[] temp = new int[iEnd - iStart + 1];
int iIndex = 0;
// iStart 번째부터 iEnd 번째까지 자르기
for (int j = iStart - 1; j < iEnd; j++) {
temp[iIndex++] = array[j];
System.out.println(array[j]);
}
// 정렬
Arrays.sort(temp);
// k번째에 있는 수
answer[i] = temp[commands[i][2] - 1];
}
return answer;
}
}
Colored by Color Scripter
|
방법 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import java.util.Arrays;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for (int i = 0; i < commands.length; i++) {
// iStart 번째부터 iEnd 번째까지 자르기
int[] temp = Arrays.copyOfRange(array, commands[i][0]-1, commands[i][1]);
// 정렬
Arrays.sort(temp);
// k번째에 있는 수
answer[i] = temp[commands[i][2] - 1];
}
return answer;
}
}
Colored by Color Scripter
|
간단한 정렬문제
Arrays.copyOfRange( array, START , END );
를 쓰면 코드가 훨씬 간결해지지만, 빨리 돌지는 않는다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스]정렬: H-Index (level 2) (0) | 2019.11.05 |
---|---|
[프로그래머스]정렬 : 가장 큰 수 (level 2) (java, c++) (0) | 2019.11.05 |
[프로그래머스]깊이/너비 우선 탐색(DFS/BFS) : 타겟 넘버 (level 2)(java, c++) (0) | 2019.11.04 |
[프로그래머스]완전탐색 : 카펫 (level 2) (java, c++) (0) | 2019.11.04 |
[프로그래머스]완전탐색 : 숫자 야구 (level 2)(java) (0) | 2019.11.03 |
댓글