[백준] PS/Java [실랜디]

[백준 1996] 지뢰 찾기 - JAVA

SH3542 2025. 3. 6. 04:07

https://www.acmicpc.net/problem/1996

 

8방 완탐 구현

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Main {

  public static void main(String[] args) throws IOException {

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int N = Integer.parseInt(br.readLine());

    int[][] m = new int[N][N];
    int[][] p = new int[N][N];
    for (int i = 0; i < N; i++) {
      String s = br.readLine();
      for (int j = 0; j < N; j++) {
        if (s.charAt(j) != '.') {
          m[i][j] = s.charAt(j) - '0';
        }
      }
    }

    int dr[] = {1, -1, 0, 0, -1, 1, -1, 1};
    int dc[] = {0, 0, -1, 1, 1, -1, -1, 1};

    for (int i = 0; i < N; i++) {
      for (int j = 0; j < N; j++) {

        int t = 0;
        for (int k = 0; k < 8; k++) {
          int tr = i + dr[k];
          int tc = j + dc[k];

          if (tr >= 0 && tr < N && tc >= 0 && tc < N) {
            t += m[tr][tc];
          }
        }
        p[i][j] = t;
      }
    }

    StringBuilder sb = new StringBuilder();
    for (int i = 0; i < N; i++) {
      for (int j = 0; j < N; j++) {
        if (m[i][j] != 0) {
          sb.append("*");
        } else {
          sb.append(p[i][j] > 9 ? "M" : p[i][j]);
        }
      }
      sb.append("\n");
    }
    System.out.println(sb);
  }
}

'[백준] PS > Java [실랜디]' 카테고리의 다른 글

[백준 1904] 01타일 - JAVA  (0) 2025.03.06
[백준 1895] 필터 - JAVA  (0) 2025.03.06
[백준 1835] 카드 - JAVA  (0) 2025.03.05
[백준 1822] 차집합 - JAVA  (0) 2025.03.05
[백준 1780] 종이의 개수 - JAVA  (0) 2025.03.05