코드업 문제풀이

코드업 1097번 바둑알 십자 뒤집기 문제

하루에 한번 방문하기 2019. 8. 30. 20:28

이해가 안되어서 그동안 못풀고 있었는데

친구에게 물어보니 십자 뒤집기 말 뜻이

해당 요소가 0이라면 1로, 1이라면 0으로 바꾸는거라더군요...

좌표 반전문제라고 생각했는데

십자 뒤집기가 이런 뜻이라니..

다음에는 문제를 천천히 읽는 습관을 들여야겠습니다.

답)

...더보기
#include <stdio.h>

int main()
{
	int map[19][19];
	int n;

	//바둑알 상황입력받기
	for (int i = 0; i < 19; i++)
	{
		for (int j = 0; j < 19; j++)
		{
			scanf("%d", &map[i][j]);
		}
	}

	//몇번 뒤집기를 할것인지 입력받기
	scanf("%d", &n);
	for (int loop = 0; loop < n; loop++) {
		int x, y;
		scanf("%d %d", &x, &y);
		for (int i = 0; i < 19; i++) {
			if (map[x - 1][i] == 0) {
				map[x - 1][i] = 1;
			}
			else if (map[x - 1][i] == 1) {
				map[x - 1][i] = 0;
			}
		}
		for (int i = 0; i < 19; i++) {
			if (map[i][y - 1] == 0) {
				map[i][y - 1] = 1;
			}
			else if (map[i][y - 1] == 1) {
				map[i][y - 1] = 0;
			}
		}
	}

	//뒤집은 결과 출력하기
	for (int i = 0; i < 19; i++)
	{
		for (int j = 0; j < 19; j++)
		{
			printf("%d ", map[i][j]);
		}
		printf("\n");
	}
	return 0;
}