[C언어 코드업 문제풀이] CodeUp 1524 : 지뢰 찾기 1

코드업 1524번 지뢰 찾기1 문제 풀이 해답입니다.

 

1. 문제 설명

 

지뢰 찾기 게임은 윈도우 기본 게임으로 많이 알고 있을 것이다.

지뢰 찾기 1번 문제로 9 * 9 의 초급용 지뢰 맵이 있다고 하자.

좌표 값은 왼쪽 위에서 부터 (행, 열)의 순서이다.

만약 지뢰 맵이 다음과 같이 셋팅되어 있다고 가정하면,

 

 

여기서 1은 지뢰, 0은 빈 칸을 의미한다.

지뢰 찾기에서 어떤 칸을 선택하면 그 칸 주변의 8방향의 칸에 지뢰가 있는 개수를 화면에 표시해준다.

예를 들어 (2, 3)의 좌표를 클릭하는 경우 주변의 지뢰가 3개 있으므로 3을 출력한다.( (1,2), (1,3), (2,2) )

만약 지뢰가 있는 칸을 선택한 경우 -1을 출력하고, 지뢰가 없으면 0을 출력한다.

지뢰 찾기 맵의 정보가 주어졌을 때 위와 같은 정보를 출력하는 프로그램을 작성하시오.

 

2. 입력

 

지뢰 찾기 맵의 정보가 9행 9열로 입력된다.(지뢰:1, 빈칸:0)

10번째 행에 행 r과 열 c가 입력된다.( 1 <= r, c <= 9 )

 

3. 출력

 

(r, c) 주변의 지뢰 개수를 출력한다. 만약 (r,c)가 지뢰가 있는 자리이면 -1을 출력한다.

 

4. 입력 예시

 

1 0 1 0 0 0 0 0 0

1 0 0 0 1 0 0 0 0

1 0 0 0 1 0 0 1 0

1 0 1 1 1 0 0 0 0

1 0 1 0 1 0 0 0 0

1 0 1 1 1 0 0 1 0

1 0 0 0 1 0 0 0 0

1 0 0 0 1 0 0 1 0

1 0 0 0 1 0 0 0 0

5 4

 

5. 출력 예시

 

8

 

6. 문제 풀이

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
 
 
 
int main()
{
    int mine[12][12= {};
    int x,y;
    for(int i = 1; i <= 9; i ++){
        for(int j = 1; j <= 9; j ++){
            scanf("%d ",&mine[i][j]);
        }
    }
    
    scanf("%d %d",&x,&y);
    
    if(mine[x][y] == 1){
        printf("-1");
    }
    else{
        printf("%d",mine[x-1][y-1+ mine[x-1][y] + mine[x-1][y+1+ mine[x][y-1+ mine[x][y+1+ mine[x+1][y-1+ 
mine[x+1][y] + mine[x+1][y+1]);
    }
    
    return 0;
}
 

 

 

댓글()