백준 1996 java : 구현

magicdrill·2025년 12월 15일

백준 문제풀이

목록 보기
669/673

백준 1996 java : 구현

import java.util.Arrays;
import java.util.Scanner;

public class bj1996 {
    static int [][] map;

    public static void main(String[] args) {
        inputData();
        findAnswer();
    }

    public static void inputData(){
        Scanner sc = new Scanner(System.in);
        int N;
        int i, j;

        N = sc.nextInt();
        map = new int[N][N];
        for(i = 0; i < N; i++){
            String str = sc.next();
            for(j = 0; j < N; j++){
                if(str.charAt(j) == '.'){
                    map[i][j] = 0;
                }
                else{
                    map[i][j] = str.charAt(j)-'0';
                }
            }
        }

        sc.close();
//        for(int [] temp : map){
//            for(int ch : temp){
//                System.out.print(ch);
//            }
//            System.out.println();
//        }
    }

    public static void findAnswer(){
        int N = map.length;
        int i, j, k, x, y;
        int [][] direction = {{-1,-1}, {0, -1},{1, -1},{-1, 0},{0,0},{1,0},{-1, 1},{0,1},{1,1}};

        int [][] mineField = new int[N][N];
        for(i = 0; i < N; i++){
            Arrays.fill(mineField[i], 0);
        }
        for(i = 0; i < N; i++){
            for(j = 0; j < N; j++){
                for(k = 0; k < direction.length; k++){
                    x = j + direction[k][1];
                    y = i + direction[k][0];

                    if(x >= 0 && x < N && y >= 0 && y < N){
                        mineField[i][j] += map[y][x];
                    }
                    if (map[i][j] > 0){
                        mineField[i][j] = -1;
                    }
                }
            }
        }

        for(int [] temp : mineField){
            for(int mine : temp){
                if(mine >= 10){
                    System.out.print("M");
                }
                else if(mine == -1){
                    System.out.print("*");
                }
                else{
                    System.out.print(mine);
                }
            }
            System.out.println();
        }
    }
}

0개의 댓글