https://programmers.co.kr/learn/courses/30/lessons/42748
์ฝ๋
import java.util.*;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for(int i=0; i<commands.length; i++) {
// ์๋ก์ด ๋ฐฐ์ด์ ํฌ๊ธฐ -> commands[i][1] ~ commands[i][0]๊น์ง ์๋ฅธ ํ ์ ๋ ฌํ๋ฏ๋ก ๋ ๊ฐ ๋นผ๊ณ +1
int[] arr = new int[commands[i][1] - commands[i][0] + 1];
int arrIndex = 0;
// commadns์ [i][0]-1 ~ [i][1]๊น์ง ์๋ผ์ array ๋ฐฐ์ด์ ์์ ๊ฐ์ arr์ ์ ์ฅํ๊ธฐ.
// ์์ ๋๋ก 2๋ฒ์งธ ~ 5๋ฒ์งธ๋ผ๋ฉด ๋ฐฐ์ด์ ์ธ๋ฑ์ค์ 1, 2, 3, 4 ๊ฐ์ด ๋ค์ด๊ฐ์ผ ํ๋ฏ๋ก -1 ํด์ค.
for(int j=commands[i][0]-1; j<commands[i][1]; j++) {
arr[arrIndex++] = array[j];
}
Arrays.sort(arr); // ๋ฐฐ์ด ์ ๋ ฌ
answer[i] = arr[commands[i][2] - 1];
}
return answer;
}
}
ํ์ด
๋ฌธ์ ์์ ์ฃผ์ด์ง ๋๋ก ๊ทธ๋๋ก ๊ตฌํํ๋ค.
commands[][] ๋ฐฐ์ด์ ๊ฐ ํ๋ง๋ค ์๋ก์ด ๋ฐฐ์ด(arr)์ ๋ง๋ ๋ค.
์๋ก์ด ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ์ฃผ์ด์ง commands์ ์ฒซ๋ฒ์งธ ์ด - 0๋ฒ์งธ์ด + 1 ์ ํ๋ฉด ๋๋๋ฐ,
2๋ฒ์งธ ~ 5๋ฒ์งธ๋ 5 - 2 + 1 = 4
4๋ฒ์งธ ~ 4๋ฒ์งธ๋ 4 - 4 + 1 = 1
1๋ฒ์งธ ~ 7๋ฒ์งธ๋ 7 - 1 + 1 = 7
์์ ๊ฐ์ด ๋๋ฏ๋ก, ์๋ก์ด ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์ ํด์ค๋ค.
commands[i][0] ~ commands[i][1] ๋ฒ์งธ ์๋ฅผ ์๋ก์ด ๋ฐฐ์ด(arr)์ ๋ฃ๊ณ ,
์๋ก์ด ๋ฐฐ์ด(arr)์ ์ ๋ ฌํ ํ arr[commands[i][2]-1] ์ answer ๋ฐฐ์ด์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ 0๋ถํฐ์ด๋ฏ๋ก, ํ์นธ์ฉ ๋น๊ฒจ์ -1์ ํด์ค์ผ ํ๋ค.
[1, 5, 2, 6, 3, 7, 4] ๋ฅผ 2๋ฒ์งธ ~ 5๋ฒ์งธ ์๋ฅธ ํ ์ ๋ ฌ => [5, 2, 6, 3] => [2, 3, 5, 6]
2๋ฒ์งธ ~ 5๋ฒ์งธ ์ด์ง๋ง, ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก๋ 1, 2, 3, 4 ๊ฐ ๋๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค[Java] - ์นดํซ(์์ ํ์, ์ํ) (0) | 2020.03.04 |
---|---|
[๋ฐฑ์ค] 13300๋ฒ: ๋ฐฉ ๋ฐฐ์ (๊ตฌํ) (0) | 2020.03.04 |
[Codeforces] 703A: Mishka and Game (0) | 2020.03.04 |
[๋ฐฑ์ค] 1051๋ฒ: ์ซ์ ์ ์ฌ๊ฐํ(์์ ํ์, ๊ตฌํ) (0) | 2020.03.03 |
[๋ฐฑ์ค] 4948๋ฒ: ๋ฒ ๋ฅดํธ๋ ๊ณต์ค(์์, ์๋ผํ ์คํ ๋ค์ค์ ์ฒด) (0) | 2020.03.03 |
๋๊ธ