Deff_Dev

[코드업] 지뢰 찾기 1 (C++) 본문

코딩테스트/코드업

[코드업] 지뢰 찾기 1 (C++)

Deff_a 2024. 3. 26. 23:30
 

지뢰 찾기 1

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

codeup.kr

 

문제

이 문제는 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;
}

 

 

 

CodingTestPractice/CodeUp/2차원 배열/지뢰 찾기 1.cpp at main · seungdo1234/CodingTestPractice

코딩 테스트 연습. Contribute to seungdo1234/CodingTestPractice development by creating an account on GitHub.

github.com