⚙️ 알고리즘/기타 문제 & 풀이

[C] 사방의 값 채우기(지뢰찾기 변형)

dev_zoe 2020. 7. 17. 23:13
반응형

#include <stdio.h>

#define X_VALUE 5 //2차원 배열의 행의 수
#define Y_VALUE 5 //2차원 배열의 열의 수

int main(void)
{
	int i;
	int j;
	int grid[X_VALUE][Y_VALUE];
	int n[X_VALUE][Y_VALUE] = { 0 };

	// grid입력

	for (i = 0; i < X_VALUE; i++) {
		for (j = 0; j < Y_VALUE; j++)
			scanf("%d", &grid[i][j]);
	}

	for (i = 0; i < X_VALUE; i++) {
		for (j = 0; j < Y_VALUE; j++) {
			if (grid[i][j] == 0) {
				//위
				if (i - 1 >= 0)
					n[i][j] += grid[i - 1][j];

				//아래
				if (i + 1 < X_VALUE)
					n[i][j] += grid[i + 1][j];

				//왼쪽
				if (j - 1 >= 0)
					n[i][j] += grid[i][j-1];
				//오른쪽
				if (j + 1 < Y_VALUE)
					n[i][j] += grid[i][j + 1];
			}
			else
				n[i][j] = grid[i][j];
		}
	}

	for (i = 0; i < X_VALUE; i++) {
		for (j = 0; j < Y_VALUE; j++)
			printf("%d ", n[i][j]);
		printf("\n");
	}
}

※ 활용한 지뢰찾기 링크 : https://devyul.tistory.com/3

반응형