์ฒด๊ฐ Level : โ
โโ Review: ์กฐ๊ฑด๋ง ์ ์ง๋ฉด ๊ฐ๋จํ ํ ์ ์๋ ๋ฌธ์ ! ํ,์ด ๊ฐ ์กฐ์ ํ๋ ๋ฒ์ ๋ฐฐ์ ์!! ํ์ง๋ง ์์ง๋ ๋ฐฐ์ด ์ธ๋ฑ์ค๊ฐ์ผ๋ก ๋ฒ์ ์ฒ๋ฆฌํ๋๊ฒ ํท๊ฐ๋ฆฐ๋ค |
๐ก ๋ฌธ์ ๋ฅผ ๋์ํํด๋ณด๋ฉด ์ด๋ฐ๋๋์ด๋ค ! x,y๊ฐ ๋์ผํด์ง๋๋ก 0 ์ ์ถ๊ฐํด์ค์ผํ๋ค.
+ ๋์ ๋ฐฐ์ด์ ์ฌ์ฉํ์ง์๊ณ ํด๋ดค์!!
์กฐ๊ฑด์ ๋จผ์ ๋๋ ์ฃผ์!
1) x > y ํ์ด ๋ ํด ๋
2) x < y ์ด์ด ๋ ํด ๋
3) x == y ํ ์ด์ด ๊ฐ์ ๋
๊ทธ๋ค์
1) x,y ๊ฐ์ ๋ฐ๋ผ ๋ฐฐ์ด ํฌ๊ธฐ๋ฅผ ์ ํด์ ๋ง๋ค์ด์ค๋ค.
ํฐ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ง๋ค์ด์ฃผ๋ฉด ๋จ
answer = new int [x][x]; //๋ฐฐ์ด ํฌ๊ธฐ
2) ๋ฐฐ์ด์ ๋ณต์ฌํ๋ค. (+ 2์ฐจ์ ๋ฐฐ์ด ๋ณต์ฌ์ ๋ฉ์๋ ์ฌ์ฉ์ ํ๋ฉด ๋ ๊ฐํธํ๋ค.)
int[][] original = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
int[][] copy = new int[original.length][original[0].length];
for (int i = 0; i < original.length; i++) {
copy[i] = Arrays.copyOf(original[i], original[i].length);
}
3) 0์ ์ถ๊ฐํด์ค๋ค.
- 1) x > y ํ์ด ๋ ํด ๋
ํ์ ์ ์ฒด ๋๋ ค๊ฐ๋ฉด์ ์์ ๋ค์ชฝ์ 0์ ์ถ๊ฐํด์ค์ผํ๋ค.
๋ฒ์๋ x-(x-y) ~ x-1
- 2) x < y ์ด์ด ๋ ํด ๋
ํ์ ์ถ๊ฐ๋ ๋ถ๋ถ๋ง ๋๋ ค์ฃผ๋ฉด ๋๊ณ
์ด์ ์ ์ฒด ๋๋ ค๊ฐ๋ฉด์ 0์ ์ถ๊ฐํด์ค๋ค.
= > ๊ทผ๋ฐ ์ฌ์ค ๋ฐฐ์ด์ ๋ณต์ฌํ ๋ ๋น ๊ณต๊ฐ์ ์๋์ผ๋ก 0์ผ๋ก ์ด๊ธฐํ๋๊ธฐ๋๋ฌธ์
๊ตณ์ด ์ด ์ฝ๋๋ฅผ ์์ฑํ ํ์์๋ค. ์๋ต ๊ฐ๋ฅ!!
for (int i = y-(y-x); i < y; i++){
for (int j = 0 ; j< y; j++){
answer[i][j] = 0;
}
}
class Solution {
public int[][] solution(int[][] arr) {
int[][] answer = {};
int x = arr.length; // ํ๊ฐ์4
int y = arr[0].length; // ์ด๊ฐ์3
if (x > y){
answer = new int [x][x]; //๋ฐฐ์ด ํฌ๊ธฐ
for (int i = 0; i < arr.length; i++) { // ๋ฐฐ์ด ๋ณต์ฌ
for (int j = 0; j < arr[i].length; j++) {
answer[i][j] = arr[i][j];
}
}
for (int i = 0 ; i < x; i++){ //0์ถ๊ฐ
for (int j = x-(x-y); j < x; j++){
answer[i][j] = 0;
}
}
} else if (x < y) {
answer = new int [y][y];//๋ฐฐ์ด ํฌ๊ธฐ
for (int i = 0; i < arr.length; i++) { // ๋ฐฐ์ด ๋ณต์ฌ
for (int j = 0; j < arr[i].length; j++) {
answer[i][j] = arr[i][j];
}
}
for (int i = y-(y-x); i < y; i++){ //0์ถ๊ฐ ์๋ต๊ฐ๋ฅ!!!!
for (int j = 0 ; j< y; j++){
answer[i][j] = 0;
}
}
}else {
return arr;
}
return answer ;
}
}