๐ ์ฝ๋ฉํ
์คํธ/๋ฐฑ์ค & ํ๋ก๊ทธ๋๋จธ์ค
[ํ๋ก๊ทธ๋๋จธ์ค][JAVA]Level 0 : ์์ ์ง๋
deep_lee
2022. 12. 24. 18:09
๋ฌธ์ ์์ฒด๋ ์ฌ์๋ณด์ด์ง๋ง, ๊ตฌํ ํ ๋ ๊ฒน์น๋๋ถ๋ถ๊ณผ, ์ ์ผ ๋ฐ๊นฅ์ชฝ ์์ญ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง๊ฐ ๊ด๊ฑด์ด์๋ค.
๊ทธ๋ฆฌ๊ณ 2๊ฐ์ง๋ฐฉ๋ฒ์ผ๋ก ํ์ดํ๋ค.
์ฒซ ๋ฒ์งธ ํ์ด ๋ฐฉ๋ฒ.
class Solution {
private static void destroyArea(int i, int j, int n, int[][] copy){
for(int x=i-1; x<=i+1; x++){
if(x<0||x>=n) continue;
else{
for(int y=j-1; y<=j+1; y++){
if(y<0||y>=n) continue;
else copy[x][y]=1;
}
}
}
}
public int solution(int[][] board) {
int n=board.length;
int[][] area=new int[n][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
if(board[i][j]==1){
destroyArea(i,j,n,area);
}
}
}
int answer=0;
for(int i=0; i<area.length; i++){
for(int j=0; j<area.length; j++){
if(area[i][j]==0)
answer++;
}
}
return answer;
}
}
๋๋ฒ์งธ ํ์ด ๋ฐฉ๋ฒ.
์ด๊ฒ์ด ์ฒ์์ ๋ด๊ฐ ์ ๊ทผํ๋ ค๋ ํ์ด์๋ค.
์ ๋ ฅ๋ฐ๋ board์ ํฌ๊ธฐ๋ 5x5ํฌ๊ธฐ๋ก ์ ํด์ ธ์๊ธฐ๋๋ฌธ์, ์ ํ ์ข ์ฐ์ ํ์ค์ฉ ๋ํ 7x7์ ๋ฐฐ์ด์ ์๋ก ์์ฑํด์
ํ๊ดด๋๋ ๋ถ๋ถ์ ๋ชจ๋ ๋ฐ๊ฟ์ฃผ๊ณ 5x5์ ํฌ๊ธฐ ๋ด์์ ์์ ์ง๋๋ฅผ ์นด์ดํ ํ๋ ๋ฐฉ์์ด๋ค.
int n=board.length;
int[][] area=new int[n+2][n+2];
for(int i=1; i<n+1; i++){
for(int j=1; j<n+1; j++){
area[i][j]=board[i-1][j-1];
}
}
for(int i=1; i<n+1; i++){
for(int j=1; j<n+1; j++){
if(area[i][j]==1){
for(int x=i-1; x<=i+1; x++){
for(int y=j-1; y<=j+1; y++){
if(area[x][y]!=1) area[x][y]=2;
}
}
}
}
}
int answer=0;
for(int i=1; i<n+1; i++){
for(int j=1; j<n+1; j++){
if(area[i][j]==0) answer++;
System.out.print(area[i][j]);
}
System.out.println();
}
return answer;
}
}