๋ฌธ์ ์ค๋ช
๋ฐฐ์ด `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 ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐๋ถ๋ถ ๋ฐฐ์ด ๊ตฌํ๊ธฐ
java.util ํจํค์ง์ `Arrays` ํด๋์ค์๋ ๋ฐฐ์ด์ ๋ค๋ฃจ๊ธฐ ์ํ ๋ฉ์๋๊ฐ ํฌํจ๋์ด ์๋ค. ๋ชจ๋ ๋ฉ์๋๋ static ๋ฉ์๋๋ก, ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ์๊ณ ๋ ์ฌ์ฉํ ์ ์๋ค. java.util ํจํค์ง์ ํฌํจ๋๋ฏ๋ก ๋ฐ๋์ import๋ฌธ์ผ๋ก ํจํค์ง๋ฅผ ๋ถ๋ฌ์จ ํ ์ฌ์ฉํ๋ค.
ํน์ ๊ธธ์ด๋งํผ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ณต์ฌํ์ฌ ๋ฐํ
`copyOf()`
์ฒซ๋ฒ์งธ ์ธ์๋ก ์๋ณธ ๋ฐฐ์ด์ ์ ๋ฌ๋ฐ๊ณ ๋๋ฒ์งธ ์ธ์๋ก ๋ณต์ฌํ ์์์ ๊ฐ์๋ฅผ ๋ฐ๋๋ค.
import java.util.Arrays;
// ...
int[] arr = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, 3);
// arr2 = {1, 2, 3};
ํน์ ๋ฒ์์ ํด๋นํ๋ ์์๋ง ์๋ก์ด ๋ฐฐ์ด๋ก ๋ณต์ฌํ์ฌ ๋ฐํ
`copyOfRange()`
์ฒซ๋ฒ์งธ ์ธ์๋ก ์๋ณธ ๋ฐฐ์ด์ ์ ๋ฌ๋ฐ๊ณ ๋๋ฒ์งธ ์ธ์๋ก ์์ ์ธ๋ฑ์ค๋ฅผ, ์ธ๋ฒ์งธ ์ธ์๋ก ๋ง์ง๋ง ์์๊ฐ ๋ ์ธ๋ฑ์ค๋ฅผ ์ ๋ฌ๋ฐ๋๋ค.
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOfRange(arr1, 2, 4);
// arr2 = {3, 4}
๐๋ฐฐ์ด ์ ๋ ฌํ๊ธฐ
`Arrays` ํด๋์ค์ `sort()` ๋ฉ์๋๋ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ค๋ค.
int[] arr = {2, 5, 3, 4, 1};
Arrays.sort(arr);
// arr = {1, 2, 3, 4, 5};
๐ํ์ด
1. ์ฃผ์ด์ง ๋ฐฐ์ด `array`๋ฅผ i๋ถํฐ j๊น์ง ์๋ฅธ ๋ค k๋ฒ์งธ์ ์์๋ฅผ ๊ตฌํ๋ค. ํด๋น ์์๋ฅผ answer ๋ฐฐ์ด์ ๋ด์ ๋ฐํํ๋ค.
2. `commands`์ ์ธ๋ฑ์ค 0์ i, 1์ j, 2๋ k๊ฐ ๋๋ค.
3. ์์ ๋ฐฐ์ด temp์ array๋ฅผ i๋ถํฐ j๊น์ง ์๋ฅธ ๋ถ๋ถ ๋ฐฐ์ด์ ๋ฃ์ ๋ค, temp์ k๋ฒ์งธ ์์๋ฅผ answer์ ๋ฃ๋๋ค.
๋จ, i ๋๋ k๋ฒ์งธ ์์๋ฅผ ๊ตฌํ๋ ๊ฒ์ ์ธ๋ฑ์ค k - 1 ์ ์์๋ฅผ ๊ตฌํ๋ ๊ฒ๊ณผ ๋์ผํ๋ฏ๋ก ๋ฐ๋์ 1์ ๋นผ์ค๋ค.
์ ์ฒด ์ฝ๋
import java.util.*;
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
int[] temp = {};
// i๋ถํฐ j๊น์ง ์๋ฅธ ๋ค k๋ฒ์งธ์ ์์๋ฅผ ๊ตฌํ๋ค.
// commands์ ์ธ๋ฑ์ค 0์ i, 1์ j, 2๋ k
// ์์ ๋ฐฐ์ด temp์ array๋ฅผ i๋ถํฐ j๊น์ง ์๋ฅธ ๋ถ๋ถ ๋ฐฐ์ด์ ๋ฃ์ ๋ค, temp์ k๋ฒ์งธ ์์๋ฅผ answer์ ๋ฃ๋๋ค.
for(int i = 0; i < commands.length; i++){
temp = Arrays.copyOfRange(array, commands[i][0] - 1, commands[i][1]);
Arrays.sort(temp);
answer[i] = temp[commands[i][2] - 1];
}
return answer;
}
}
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Lv.1] ์ถ์ต ์ ์ (1) | 2024.06.20 |
---|---|
[Lv.1] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (0) | 2024.06.18 |
[Lv.2] ํ๋ ธ์ด์ ํ (1) | 2024.06.12 |
[Lv.1] ํฐ์ผ๋ชฌ (0) | 2024.01.08 |
[Lv.1] ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2024.01.06 |