โฐ๋ฌธ์
์ ์ ๋ฐฐ์ด num_list์ ์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. num_list๋ฅผ ๋ค์ ์ค๋ช ๊ณผ ๊ฐ์ด 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ฐ๊ฟ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
num_list๊ฐ [1, 2, 3, 4, 5, 6, 7, 8] ๋ก ๊ธธ์ด๊ฐ 8์ด๊ณ n์ด 2์ด๋ฏ๋ก num_list๋ฅผ 2 * 4 ๋ฐฐ์ด๋ก ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํฉ๋๋ค. 2์ฐจ์์ผ๋ก ๋ฐ๊ฟ ๋์๋ num_list์ ์์๋ค์ ์์์๋ถํฐ n๊ฐ์ฉ ๋๋ 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํฉ๋๋ค.
num_list | n | result |
[1, 2, 3, 4, 5, 6, 7, 8] | 2 | [[1,2], [3,4], [5,6], [7,8]] |
์ ํ์ฌํญ
- num_list์ ๊ธธ์ด๋ n์ ๋ฐฐ ์๊ฐ์ ๋๋ค.
- 0 ≤ num_list์ ๊ธธ์ด ≤ 150
- 2 ≤ n < num_list์ ๊ธธ์ด
์ ์ถ๋ ฅ ์
num_list | n | result |
[1, 2, 3, 4, 5, 6, 7, 8] | 2 | [[1,2], [3,4], [5,6], [7,8]] |
[100, 95, 2, 4, 5, 6, 18, 33, 948] | 3 | [[100, 95, 2], [4, 5, 6], [18, 33, 948]] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- num_list๊ฐ [1, 2, 3, 4, 5, 6, 7, 8] ๋ก ๊ธธ์ด๊ฐ 8์ด๊ณ n์ด 2์ด๋ฏ๋ก 2 * 4 ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํ [[1, 2], [3, 4], [5, 6], [7, 8]] ์ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- num_list๊ฐ [100, 95, 2, 4, 5, 6, 18, 33, 948] ๋ก ๊ธธ์ด๊ฐ 9์ด๊ณ n์ด 3์ด๋ฏ๋ก 3 * 3 ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํ [[100, 95, 2], [4, 5, 6], [18, 33, 948]] ์ returnํฉ๋๋ค.
๐กํ์ด
โญ์ ์ถ ์ฝ๋ (for๋ฌธ๋ง ํ์ฉ)
class Solution {
public int[][] solution(int[] num_list, int n) {
int[][] answer = new int[num_list.length/n][n];
int idx = 0;
for(int i=0; i<answer.length; i++){
for(int j=0; j<n; j++){
answer[i][j] = num_list[idx];
idx++;
}
}
return answer;
}
}
answer์ ๊ธธ์ด๋ num_list ๊ธธ์ด๋ฅผ n์ผ๋ก ๋๋ ๊ฒ์ด๋ฏ๋ก num_list.length/n์ผ๋ก ์ค์ ํด์ฃผ๊ณ ,
๊ฐ ๋ฐฐ์ด๋ง๋ค n๊ฐ์ฉ ๋ค์ด๊ฐ๋ฏ๋ก answer = new int[num_list.length/n][n]; ๋ก ์ค์ ํด์ค๋ค.
2์ค for๋ฌธ์ ํ์ฉํ์ฌanswer[0][j]์ num_list์ 0~n-1๋ฒ์งธ๊น์ง n๊ฐ ๋ฃ์ด์ฃผ๊ณ , answer[1][j]์ num_list์ n~(n-1)๋ฒ์งธ๊น์ง n๊ฐ๋ฅผ ๋ฃ์ด์ฃผ๊ณ ,
์ด๋ฅผ answer์ ๊ธธ์ด๋งํผ ๋ฐ๋ณตํด์ฃผ๋ฉด ๋๋ค.
Arrays์ ๋ฉ์๋๋ฅผ ํ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
โญArrays.copyOf() ๋ฉ์๋ ํ์ฉ ์ฝ๋
import java.util.Arrays;
class Solution {
public int[][] solution(int[] num_list, int n) {
int[][] answer = new int[num_list.length/n][n];
int idx = 0;
for(int i=0; i<answer.length; i++){
answer[i] = Arrays.copyOfRange(num_list, idx, idx+(n));
idx += n;
}
return answer;
}
}
์ ์ฝ๋๋ Arrays์ copyOfRange() ๋ฉ์๋๋ฅผ ํ์ฉํ ์ฝ๋์ด๋ค.
Arryas.copyOfRange ๋ฉ์๋๋
Arrays.copyOfRange(๋ณต์ฌํ๊ณ ์ํ๋ ๋ฐฐ์ด, ์์ ์ธ๋ฑ์ค, ๋์ธ๋ฑ์ค); ๋ก ์ ์ธํด์ฃผ๋๋ฐ,
- ๋ณต์ฌํ๊ณ ์ํ๋ ๋ฐฐ์ด: num_list
- ์์ ์ธ๋ฑ์ค: idx -> 0
- ๋ ์ธ๋ฑ์ค: idx+n -> n๊ฐ์ฉ ๋๋ ์ฃผ๋ฏ๋ก
for๋ฌธ์ ์คํํ๋ฉด
answer[0]์ ์ธ๋ฑ์ค 0~n-1๊น์ง n๊ฐ๋งํผ ๋ฃ์ด์ฃผ๋ฏ๋ก answer[0][n]์ ๋ฐฐ์ด์ด ๋๊ณ , idx๋ n๋งํผ ์ฆ๊ฐ.
answer[1]์๋ n~(n+n-1)๊น์ง n๊ฐ๋งํผ ๋ฃ์ด์ฃผ๋ฏ๋ก answer[1][n]์ ๋ฐฐ์ด์ด ๋๋ค.
์ด๋ฅผ answer์ ๊ธธ์ด๋งํผ ๋ฐ๋ณตํด์ฃผ๊ณ , answer์ return ํด์ฃผ๋ฉด ๋๋ค.
์์ธํ copyOfRange() ๋ฉ์๋์ ์ฌ์ฉ๋ฒ์ ๋ฐ๋ก ์ ๋ฆฌํด ๋์์ผ๋ ์๋ ๊ธ์ ์ฐธ๊ณ ํ๋ฉด ๋๋ค.
**์คํ์๊ฐ ๋น๊ต
์์ ๋ ์ฝ๋์ ์คํ ์๊ฐ์ ๋น๊ตํด๋ณด๋ฉด for๋ฌธ์ ํ์ฉํ์ ๋์ ์๊ฐ์ด ๋ ์งง๋ค๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
'๐ Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์จ์ด์๋ ์ซ์์ ๋ง์ (1)(์๋ฐ) (0) | 2023.04.01 |
---|---|
[Programmers] ์์ธ์๋ถํด(์๋ฐ) (0) | 2023.04.01 |
[Programmers] ๋ชจ์ ์ ๊ฑฐ(์๋ฐ) (0) | 2023.03.30 |
[Programmers] ํฉํ ๋ฆฌ์ผ(์๋ฐ) (0) | 2023.03.29 |
[Programmers] ํผ๋ณด๋์น ์(์๋ฐ) (0) | 2023.03.28 |