๐ 1. ๋ฌธ์ ์ค๋ช


๐ก 2. ํ์ด๊ณผ์
โ๏ธanswer ๋ฐฐ์ด ํฌ๊ธฐ = (num_list.length / n) x n
- ํ(row): `(num_list.length / n)`
- ์ด(column): `n`
โ๏ธnum_list[i]๋ฅผ ์ฝ์ ํ answer ๋ฐฐ์ด์ ์ธ๋ฑ์ค
- ํ(row): `i / n`
- ์ด(column): `i % n`
๋ฌธ์ ์ ์ ๋ ฅ ์์์ฒ๋ผ [1, 2, 3, 4, 5, 6, 7, 8], n = 2 ์ผ ๋
i | num_list[i] | i / n (ํ ์ธ๋ฑ์ค) | i % n (์ด ์ธ๋ฑ์ค) | ๋ฐฐ์น ๊ฒฐ๊ณผ |
0 | 1 | 0 | 0 | answer[0][0] = 1 |
1 | 2 | 0 | 1 | answer[0][1] = 2 |
2 | 3 | 1 | 0 | answer[1][0] = 3 |
3 | 4 | 1 | 1 | answer[1][1] = 4 |
4 | 5 | 2 | 0 | answer[2][0] = 5 |
5 | 6 | 2 | 1 | answer[2][1] = 6 |
6 | 7 | 3 | 0 | answer[3][0] = 7 |
7 | 8 | 3 | 1 | answer[3][1] = 8 |
answer[0][0] = 1, answer[0][1] = 2
answer[1][0] = 3, answer[1][1] = 4
answer[2][0] = 5, answer[2][1] = 6
answer[3][0] = 7, answer[3][1] = 8
answer[ i / n ][ i % n ] = [[1, 2], [3, 4], [5, 6], [7, 8]] ์ ๋ฐํํ๋ค.
๐จโ๐ป 3. ์ ๋ต์ฝ๋
import java.util.*;
class Solution {
public int[][] solution(int[] num_list, int n) {
int row = num_list.length / n; // ์ด์ฐจ์ ๋ฐฐ์ด์ ํ ๊ฐ์
int[][] answer = new int[row][n];
for(int i = 0; i < num_list.length; i++) {
answer[i / n][i % n] = num_list[i]; // n๊ฐ์ฉ ๋๋ ์ ์ฑ์ฐ๊ธฐ
}
return answer;
}
}

โ ์ค๋ต์ ๋ฆฌ
์ฒ์์ ๋ฐฐ์ด ํฌ๊ธฐ ์ ์ธํ ๋
- answer ๋ฐฐ์ด์ ํฌ๊ธฐ๋ num_list.length / n x n์ด์ด์ผ ํ์ง๋ง, ์ฒ์์ num_list.length x 2๋ก ์๋ชป ์ค์ ํจ
- ๋ฐฐ์ด ์ฑ์ฐ๋ ๋ก์ง์์ answer[i - 1][0], answer[i - 1][1]์ด ์๋๋ผ, answer[i / n][i % n]๋ก ์์ ํจ.
๐๐ป 4. ๋ค๋ฅธ ๋ถ๋ค์ ์ฝ๋
โ๏ธ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ฝ๋
class Solution {
public int[][] solution(int[] num_list, int n) {
int[][] answer = new int[num_list.length/n][n];
int cnt = 0;
for(int i = 0 ; i < num_list.length/n ; i++){
for(int j = 0 ; j < n ; j++){
answer[i][j] = num_list[cnt];
cnt++;
}
}
return answer;
}
}
โ๏ธ ์ด๊ฑธ Stream์ผ๋ก ํผ ๊ฒ
import java.util.stream.IntStream;
class Solution {
public int[][] solution(int[] num_list, int n) {
return IntStream.range(0, num_list.length / n)
.mapToObj(i -> IntStream.range(0, n)
.map(j -> num_list[i * n + j])
.toArray())
.toArray(int[][]::new);
}
}
โ๏ธ ๋ ๊ฐ๋จํด์ง ์ฝ๋
class Solution {
public int[][] solution(int[] num_list, int n) {
int[][] answer = new int[num_list.length/n][n];
for(int i=0; i<answer.length; i++){
for(int j=0; j<answer[i].length; j++){
answer[i][j] = num_list[i*n+j];
}
}
return answer;
}
}
'Algorithm > JAVAํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ 1. ๋ฌธ์ ์ค๋ช


๐ก 2. ํ์ด๊ณผ์
โ๏ธanswer ๋ฐฐ์ด ํฌ๊ธฐ = (num_list.length / n) x n
- ํ(row):
(num_list.length / n)
- ์ด(column):
n
โ๏ธnum_list[i]๋ฅผ ์ฝ์ ํ answer ๋ฐฐ์ด์ ์ธ๋ฑ์ค
- ํ(row):
i / n
- ์ด(column):
i % n
๋ฌธ์ ์ ์ ๋ ฅ ์์์ฒ๋ผ [1, 2, 3, 4, 5, 6, 7, 8], n = 2 ์ผ ๋
i | num_list[i] | i / n (ํ ์ธ๋ฑ์ค) | i % n (์ด ์ธ๋ฑ์ค) | ๋ฐฐ์น ๊ฒฐ๊ณผ |
0 | 1 | 0 | 0 | answer[0][0] = 1 |
1 | 2 | 0 | 1 | answer[0][1] = 2 |
2 | 3 | 1 | 0 | answer[1][0] = 3 |
3 | 4 | 1 | 1 | answer[1][1] = 4 |
4 | 5 | 2 | 0 | answer[2][0] = 5 |
5 | 6 | 2 | 1 | answer[2][1] = 6 |
6 | 7 | 3 | 0 | answer[3][0] = 7 |
7 | 8 | 3 | 1 | answer[3][1] = 8 |
answer[0][0] = 1, answer[0][1] = 2 answer[1][0] = 3, answer[1][1] = 4 answer[2][0] = 5, answer[2][1] = 6 answer[3][0] = 7, answer[3][1] = 8
answer[ i / n ][ i % n ] = [[1, 2], [3, 4], [5, 6], [7, 8]] ์ ๋ฐํํ๋ค.
๐จโ๐ป 3. ์ ๋ต์ฝ๋
import java.util.*; class Solution { public int[][] solution(int[] num_list, int n) { int row = num_list.length / n; // ์ด์ฐจ์ ๋ฐฐ์ด์ ํ ๊ฐ์ int[][] answer = new int[row][n]; for(int i = 0; i < num_list.length; i++) { answer[i / n][i % n] = num_list[i]; // n๊ฐ์ฉ ๋๋ ์ ์ฑ์ฐ๊ธฐ } return answer; } }

โ ์ค๋ต์ ๋ฆฌ
์ฒ์์ ๋ฐฐ์ด ํฌ๊ธฐ ์ ์ธํ ๋
- answer ๋ฐฐ์ด์ ํฌ๊ธฐ๋ num_list.length / n x n์ด์ด์ผ ํ์ง๋ง, ์ฒ์์ num_list.length x 2๋ก ์๋ชป ์ค์ ํจ
- ๋ฐฐ์ด ์ฑ์ฐ๋ ๋ก์ง์์ answer[i - 1][0], answer[i - 1][1]์ด ์๋๋ผ, answer[i / n][i % n]๋ก ์์ ํจ.
๐๐ป 4. ๋ค๋ฅธ ๋ถ๋ค์ ์ฝ๋
โ๏ธ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ฝ๋
class Solution { public int[][] solution(int[] num_list, int n) { int[][] answer = new int[num_list.length/n][n]; int cnt = 0; for(int i = 0 ; i < num_list.length/n ; i++){ for(int j = 0 ; j < n ; j++){ answer[i][j] = num_list[cnt]; cnt++; } } return answer; } }
โ๏ธ ์ด๊ฑธ Stream์ผ๋ก ํผ ๊ฒ
import java.util.stream.IntStream; class Solution { public int[][] solution(int[] num_list, int n) { return IntStream.range(0, num_list.length / n) .mapToObj(i -> IntStream.range(0, n) .map(j -> num_list[i * n + j]) .toArray()) .toArray(int[][]::new); } }
โ๏ธ ๋ ๊ฐ๋จํด์ง ์ฝ๋
class Solution { public int[][] solution(int[] num_list, int n) { int[][] answer = new int[num_list.length/n][n]; for(int i=0; i<answer.length; i++){ for(int j=0; j<answer[i].length; j++){ answer[i][j] = num_list[i*n+j]; } } return answer; } }