문제 해결/CodeUp

[CodeUp] [C++] [기초 100제] 1097번 바둑알 십자 뒤집기

WSLim_97 2022. 12. 6. 22:11
반응형

https://codeup.kr/problem.php?id=1097&rid=0 

 

[기초-2차원배열] 바둑알 십자 뒤집기(설명)

C언어기초100제v1.2 : @컴퓨터과학사랑, 전국 정보(컴퓨터)교사 커뮤니티/연구회 - 학교 정보(컴퓨터)선생님들과 함께 수업/방과후학습/동아리활동 등을 통해 재미있게 배워보세요.  - 모든 내용

codeup.kr


코드

#include <iostream>
using namespace std;

int main() {
	int a[20][20] = { };
	int n, x, y;

	for (int i = 1; i < 20; i++) {
		for (int j = 1; j < 20; j++) {
			cin >> a[i][j];
		}
	}
	cin >> n;

	for (int i = 0; i < n; i++) {
		cin >> x >> y;

		for (int j = 1; j < 20; j++) {
			if (a[x][j] == 0) {
				a[x][j] = 1;
			}
			else {
				a[x][j] = 0;
			}
		}
		for (int j = 1; j < 20; j++) {
			if (a[j][y] == 0) {
				a[j][y] = 1;
			}
			else {
				a[j][y] = 0;
			}
		}
	}

	for (int i = 1; i < 20; i++) {
		for (int j = 1; j < 20; j++) {
			cout << a[i][j] << " ";
		}
		cout << "\n";
	}

	return 0;
}

풀이

19 * 19 배열을 직접 입력한 뒤 n번 반복하여 지정한 좌표를 중심으로 십자 뒤집기를 한 값을 출력하는 문제이다.

 

좌표를 지정하여 십자 뒤집기의 기준을 정하면 그 좌표의 x, y값을 이용하여 0이면 1로, 1이면 0으로 뒤집는다.

반응형