๋ฐฐ์ด array์ i๋ฒ์งธ ์ซ์๋ถํฐ j๋ฒ์งธ ์ซ์๊น์ง ์๋ฅด๊ณ ์ ๋ ฌํ์ ๋, k๋ฒ์งธ์ ์๋ ์๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค.
์๋ฅผ ๋ค์ด array๊ฐ [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3์ด๋ผ๋ฉด
array์ 2๋ฒ์งธ๋ถํฐ 5๋ฒ์งธ๊น์ง ์๋ฅด๋ฉด [5, 2, 6, 3]์
๋๋ค.
1์์ ๋์จ ๋ฐฐ์ด์ ์ ๋ ฌํ๋ฉด [2, 3, 5, 6]์
๋๋ค.
2์์ ๋์จ ๋ฐฐ์ด์ 3๋ฒ์งธ ์ซ์๋ 5์
๋๋ค.
๋ฐฐ์ด array, [i, j, k]๋ฅผ ์์๋ก ๊ฐ์ง 2์ฐจ์ ๋ฐฐ์ด commands๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, commands์ ๋ชจ๋ ์์์ ๋ํด ์์ ์ค๋ช
ํ ์ฐ์ฐ์ ์ ์ฉํ์ ๋ ๋์จ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
array์ ๊ธธ์ด๋ 1 ์ด์ 100 ์ดํ์
๋๋ค.
array์ ๊ฐ ์์๋ 1 ์ด์ 100 ์ดํ์
๋๋ค.
commands์ ๊ธธ์ด๋ 1 ์ด์ 50 ์ดํ์
๋๋ค.
commands์ ๊ฐ ์์๋ ๊ธธ์ด๊ฐ 3์
๋๋ค.
์
์ถ๋ ฅ ์
array
[1, 5, 2, 6, 3, 7, 4]
commands
[[2, 5, 3], [4, 4, 1], [1, 7, 3]]
return
[5, 6, 3]
copy of range๋ฅผ ํ์ฉํด์ ๋ฐฐ์ด๋ณต์ฌ๋ฅผ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์๋๋ฐ ๊ทธ๊ฑธ ๋ชฐ๋๋ค.
๊ทธ๋ฅ ์ด๋๋ถํฐ ์ด๋๊น์ง ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํด๋๊ณ ๊ทธ ์์๋๋ก ์์๋ฐฐ์ด์ ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ ์ฅํ๋ค ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ณ
k๋ฒ์งธ ์๋ฅผ ๋ฆฌํดํ๋ ๋ฐฉ์์ผ๋ก ํ์๋ค.
import java.util.*;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int k = 0;
int start = 0;
int end = 0;
int[] answer = new int[commands.length];
for(int i = 0 ; i < commands.length ; i++){
start = commands[i][0]-1;
end = commands[i][1];
k = commands[i][2];
int[] tmp = new int[end-start];
for(int j = 0 ; j < tmp.length ; j++) {
tmp[j] = array[start++];
}
Arrays.sort(tmp);
answer[i] = tmp[k-1];
}
return answer;
}
}