Search

배열9_문제05_숫자9의개수

대분류
STEP05 배열
소분류
배열9_문제

영상

문제

package 배열9_문제; /* [문제] 아래 mine배열의 숫자 0의 자리에 주변 8방향을 검사 해 9의 개수를 저장하고 출력하시오. [정답] {2, 9, 2}, {9, 4, 9}, {1, 3, 9} */ public class 배열9_문제05_숫자9의개수_문제 { public static void main(String[] args) { int[][] mine = { {0, 9, 0}, {9, 0, 9}, {0, 0, 9} }; } }
Java
복사

해설

package 배열9_문제; import java.util.Arrays; /* [문제] 아래 mine배열의 숫자 0의 자리에 주변 8방향을 검사 해 9의 개수를 저장하고 출력하시오. [정답] {2, 9, 2}, {9, 4, 9}, {1, 3, 9} */ public class 배열9_문제05_숫자9의개수_정답 { public static void main(String[] args) { int[][] mine = { {0, 9, 0}, {9, 0, 9}, {0, 0, 9} }; /* [-1,-1], [-1,0], [-1,1] [ 0,-1], [ 0,0], [ 0,1] [ 1,-1], [ 1,0], [ 1,1] */ for(int i=-1; i<=1; i++) { for(int j=-1; j<=1; j++) { System.out.printf("[%d,%d]\t", i, j); } System.out.println(); } int size = mine.length; for(int i=0; i<size; i++) { for(int j=0; j<size; j++) { // mine배열의 값이 0인 곳만 검사를 진행 if(mine[i][j] == 0) { int count = 0; // 8방향을 검사를 진행 for(int y=-1; y<=1; y++) { if(size <= i + y || i + y < 0) continue; for(int x=-1; x<=1; x++) { if(size <= j + x || j + x < 0) continue; if(mine[i + y][j + x] == 9) { count += 1; } } } mine[i][j] = count; } } } for(int i=0; i<size; i++) { System.out.println(Arrays.toString(mine[i])); } } }
Java
복사