Deff_Dev
[코드업] 지뢰 찾기 1 (C++) 본문
문제
이 문제는 0(빈칸)과 1(지뢰)로 이루어진 9 x 9 지뢰 맵을 입력할 때,
임의로 선택한 칸 주변 8방향의 칸에 존재하는 지뢰의 개수를 출력하는 문제이다.
만약 임의로 선택한 칸에 지뢰가 있을 경우에는 -1를 출력한다.
풀이
지뢰를 탐색하기 위해 8 방향을 나타내는 배열 dx, dy를 선언한 후 for문을 이용하여 지뢰를 탐색했다.
#include <iostream>
// https://codeup.kr/problem.php?id=1524
using namespace std;
int map[10][10] = { 0, }; // 맵
// 8 방향을 나타내는 배열 => x방향, y방향
int dx[8] = { 1,1,1,-1,-1,-1,0,0 };
int dy[8] = { -1,1,0,-1,1,0,1,-1 };
int main() {
int x, y;
// 맵 입력
for (int i = 1; i < 10; i++) {
for (int j = 1; j < 10; j++) {
cin >> map[i][j];
}
}
cin >> x >> y; // 좌표 입력
if (map[x][y] == 1) { // 입력한 좌표에 지뢰가 있다면
cout << -1 << endl; // -1 출력
}
else { // 지뢰가 없다면 8방향 지뢰 탐색
int count = 0;
for (int i = 0; i < 8; i++) {
// 지뢰가 있을 때 count++
if (map[x + dx[i]][y + dy[i]] == 1) {
count++;
}
}
cout << count << endl; // 지뢰 갯수 출력
}
return 0;
}
'코딩테스트 > 코드업' 카테고리의 다른 글
[코드업] 진격 후 결과 (C++) (0) | 2024.03.27 |
---|---|
[코드업] 생명 게임 1 (C++) (2) | 2024.03.27 |
[코드업] 성실한 개미 (C++) (0) | 2024.03.25 |
[코드업] 설탕과자 뽑기 (C++) (0) | 2024.03.24 |
[코드업] 주사위를 2개 던지면 ? (C++) (0) | 2024.03.24 |