문제 : https://codeup.kr/problem.php?id=1097
#include <stdio.h>
int main(void)
{
int n, i, j, x, y;
int a[20][20] = {};
for (i = 1; i <= 19; i++) // 한 줄씩 바둑판 상황 입력
for (j = 1; j <= 19; j++) // i=1 로 지정해야 x y축을 입력하는 좌표 위치와 동일하게 인식
scanf_s("%d", &a[i][j]); // * 문장 하나만 반복하므로 for문 블록 생략 가능
scanf_s("%d", &n); // 몇 개의 (x y)좌표를 바꿀 것 인지 입력
for (i = 0; i < n; i++) // 입력한 n개의 좌표 수 만큼
{
scanf_s("%d %d", &x, &y); // x , y 의 좌표 줄 흑백 교체
for (j = 1; j <= 19; j++)
{
if (a[x][j] == 0) // 입력한 x의 줄에서
a[x][j] = 1; // 0 => 1
else a[x][j] = 0; // 1 => 0
}
for (j = 1; j <= 19; j++)
{
if (a[j][y] == 0) // 입력한 y의 줄에서
a[j][y] = 1; // 0 => 1
else a[j][y] = 0; // 1 => 0
}
}
for (i = 1; i <= 19; i++) // 한 줄(위에서 아래로) 씩
{
for (j = 1; j <= 19; j++) // 한 열(왼쪽에서 오른쪽으로) 씩
{
printf("%d ", a[i][j]);
}
printf("\n"); // 하나의 x 축이 끝날 때 마다 줄 바꿈
}
return 0;
}
문제에서 제시하는 한 줄씩 바둑판 상황 입력
예시 입력안
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
개인적으로 이번 문제는 지금까지 해왔던 코드업 문제 중 가장 이해하기 난해한 문제였습니다.
'Language > CodeUp : C' 카테고리의 다른 글
[CodeUp] 1098 : [기초-2차원배열] 설탕과자 뽑기 (0) | 2021.06.18 |
---|---|
[CodeUp] 1096 : [기초-2차원배열] 바둑판에 흰 돌 놓기 (0) | 2021.06.01 |
[CodeUp] 1095 : [기초-1차원배열] 이상한 출석 번호 부르기3 (0) | 2021.06.01 |
[CodeUp] 1094 : [기초-1차원배열] 이상한 출석 번호 부르기2 (0) | 2021.06.01 |
[CodeUp] 1093 : [기초-1차원배열] 이상한 출석 번호 부르기1 (0) | 2021.06.01 |