https://www.acmicpc.net/problem/4108
4108번: 지뢰찾기
C개의 문자들이 포함된 R개의 줄을 출력한다. 단, 모든 '.' 대신 인접한 칸에 위치한 지뢰의 수로 변경해 출력한다. '*' 칸은 그대로 출력한다. 문자 사이에 공백이나 줄 사이에 공백 줄이 있어선
www.acmicpc.net
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
while (true) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int R = Integer.parseInt(st.nextToken());
int C = Integer.parseInt(st.nextToken());
if (R == 0) break;
char[][] map = new char[R][C];
for (int i = 0; i < R; i++) {
map[i] = br.readLine().toCharArray();
} // end of input
for (int i = 0; i < R; i++) {
for (int j = 0; j < C; j++) {
if (map[i][j] == '.') {
int cnt = 0;
for (int r = i - 1; r <= i + 1; r++) {
for (int c = j - 1; c <= j + 1; c++) {
if (0 <= r && r < R && 0 <= c && c < C && map[r][c] == '*') cnt++;
}
}
map[i][j] = (char) (cnt + '0');
}
}
}
for (int i = 0; i < R; i++) {
for (int j = 0; j < C; j++) {
sb.append(map[i][j]);
}
sb.append("\n");
}
}
System.out.print(sb);
}
}
'OJ' 카테고리의 다른 글
[BOJ] 2914 저작권 (JAVA) (0) | 2023.04.01 |
---|---|
[BOJ] 2302 극장 좌석 (JAVA) (0) | 2023.03.31 |
[BOJ] 9657 돌 게임 3 (JAVA) (0) | 2023.03.29 |
[BOJ] 1699 제곱수의 합 (JAVA) (0) | 2023.03.28 |
[BOJ] 9655 돌 게임 (JAVA) (0) | 2023.03.27 |