[C언어 코드업 문제풀이] CodeUp 1524 : 지뢰 찾기 1
ET의 공부/C언어 연습문제[ 코드업 ]2020. 5. 11. 10:02
코드업 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;
}
|
'ET의 공부 > C언어 연습문제[ 코드업 ]' 카테고리의 다른 글
[C언어 코드업 문제풀이] CodeUp 4085 : 농사짓기 가장 좋은 땅 고르기 (0) | 2020.05.11 |
---|---|
[C언어 코드업 문제풀이] CodeUp 1525 : 크레이지 아케이드 (1) | 2020.05.11 |
[C언어 코드업 문제풀이] CodeUp 1520 : 생명 게임 2 (0) | 2020.05.11 |
[C언어 코드업 문제풀이] CodeUp 1515 : 생명 게임 1 (0) | 2020.05.11 |
[C언어 코드업 문제풀이] CodeUp 1513 : 지그재그 배열 3 (0) | 2020.05.11 |
댓글()