hy30nq 2024. 1. 5. 12:50
728x90

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

 

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

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

codeup.kr

 

 

#include <stdio.h>

int n, i, j, k, a, b;
int map[20][20];

int main()
{
	for(i=1; i <= 19; i++)
		for(j=1; j <= 19; j++)
			scanf("%d", &map[i][j]);
	
	scanf("%d", &n);
	for(i=0; i < n; i++)
	{
		scanf("%d%d", &a, &b);
		for(j=1; j <= 19; j++)
			if(map[a][j] == 1) map[a][j]=0;
			else map[a][j]=1;
		for(j=1; j <= 19; j++)
			if(map[j][b] == 1) map[j][b]=0;
			else map[j][b]=1;
	}
	
	for(i=1; i <= 19; i++, puts(""))
		for(j=1; j <= 19; j++)
		{
			printf("%d ", map[i][j]);
		}
}

 

내가 푼 답

#include <stdio.h>

int main() {
    int x, y, n;
    int arr[20][20] = {};
    
    for(int i=1; i<=19; i++) {
        for(int j=1; j<=19; j++) {
            scanf(" %d", &arr[i][j]);
        }
    }
    
    scanf(" %d", &n);
    
    for(int i=1; i<=n; i++) {
         scanf(" %d %d", &x, &y);
         
         for(int j=1; j<=19; j++) {
             if(arr[x][j] == 0) {
                 arr[x][j] = 1;
             } else {
                 arr[x][j] = 0;
             }
         }
         
         for(int j=1; j<=19; j++) {
             if(arr[j][y] == 0) {
                 arr[j][y] = 1;
             } else {
                 arr[j][y] = 0;
             }
         }
    }
    
    for(int i=1; i<=19; i++) {
        for(int j=1; j<=19; j++) {
            printf("%d ", arr[i][j]);
        }
        printf("\n");
    }
}

 

728x90