import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int height = sc.nextInt();
int width = sc.nextInt();
int y = sc.nextInt() - 1;
int x = sc.nextInt() - 1;
int[][] ary = new int[height][width];
int mineCount = 0;
for (int a = 0; a < height; a++) {
for (int b = 0; b < width; b++) {
ary[a][b] = sc.nextInt();
}
}
if (ary[y][x] == 1) {
System.out.println("game over");
return;
}
if (y - 1 >= 0 && ary[y - 1][x] == 1) { // 12시
mineCount++;
}
if (y + 1 <= height - 1 && ary[y + 1][x] == 1) { // 6시
mineCount++;
}
if (x + 1 <= width - 1 && ary[y][x + 1] == 1) { // 3시
mineCount++;
}
if (x - 1 >= 0 && ary[y][x - 1] == 1) { // 9시
mineCount++;
}
if (x + 1 <= width - 1 && y - 1 >= 0 && ary[y - 1][x + 1] == 1) { // 1사분면
mineCount++;
}
if (x - 1 >= 0 && y - 1 >= 0 && ary[y - 1][x - 1] == 1) { // 2사분면
mineCount++;
}
if (x - 1 >= 0 && y + 1 <= height - 1 && ary[y + 1][x - 1] == 1) { // 3사분면
mineCount++;
}
if (x + 1 <= width && y + 1 >= 0 && ary[y + 1][x + 1] == 1) {
mineCount++;
}
System.out.println(mineCount);
}
}
지뢰가 표시된 행렬과 내가 클릭한 위치의 좌표가 주어질 때 상,하,좌,우, 대각선 총 8곳에 지뢰가 몇개 있는지 찾는 문제이다.
간단하게 if문으로 8방향을 하나씩 검사하면서 마약에 지뢰(1)가 발견되면 mineCount++를 해주었다.
'알고리즘 문제' 카테고리의 다른 글
[알고리즘 문제] 대푯값 (0) | 2019.04.02 |
---|---|
[알고리즘] Class President (0) | 2019.04.02 |
[알고리즘 문제] ColorPaper (0) | 2019.03.30 |
[알고리즘 문제] Offset (0) | 2019.03.27 |
[알고리즘 문제] Box Painting (0) | 2019.03.27 |