1239: [기초-2차원 배열] 바둑알 십자 뒤집기(설명)(C)
[만든사람 : 전현석, 정종광(채점데이터 및 확인), 배준호(확인), 최웅선(확인), 김지혜(그림) (2013)]
문제 설명
본 문제는 C 의 빠른 기초 학습을 위해 설계된 문제로서 C 코드 제출을 기준으로 설명되어 있습니다.
------
집에서 다른 가족들을 기다리던 영일이는 바둑알을 바둑판에 꽉 채워 깔아 놓고 놀다가 ...
"바둑알 십(+)자 뒤집기를 만들어 볼까?"라는 생각을 하게 되었다.
어떤 위치를 골라서 십자 뒤집기를 하면,
그 위치의 가로줄에 있는 모든 바둑돌의 색을 반대(1->0, 0->1)로 바꾼 후,
그 위치의 세로줄에 있는 모든 바둑돌의 색을 반대로 바꾸는 것이다.
그 위치에 있는 바둑돌을 제외하고 그 가로/세로줄에 있는 모든 바둑돌 색이 반대로 바뀌게 된다.
흰(1) 돌과 검정(0) 돌이 꽉 채워져 있는 19 * 19 크기의 바둑판 상태와
n 개의 십자 뒤집기 좌표가 입력될 때,
십자 뒤집기를 수행한 결과를 출력해보자.
예시
...
int n, i, j, x, y;
int a[20][20]={};
for(i=1; i<=19; i++) //한 줄씩 바둑판 상황 입력 받기
for(j=1; j<=19; j++)
scanf("%d", &a[i][j]);
scanf("%d", &n); //좌표 개수 입력받기
for(i=1; i<=n; i++) //좌표의 개수만큼
{
scanf("%d %d", &x, &y);
for(j=1; j<=19; j++) //가로 줄 흑<->백 바꾸기
{
if(a[x][j]==0) a[x][j]=1;
else a[x][j] = 0;
}
for(j=1; j<=19; j++) //세로 줄 흑<->백 바꾸기
{
if(a[j][y]==0) a[j][y]=1;
else a[j][y] = 0;
}
}
...
참고
가로 번호, 세로 번호를 사용할 수 있는 2차원 배열을 사용하면
이러한 형태를 쉽게 기록하고 사용할 수 있다. 물론 더 확장한 n차원 배열도 만들 수 있다.
------
집에서 다른 가족들을 기다리던 영일이는 바둑알을 바둑판에 꽉 채워 깔아 놓고 놀다가 ...
"바둑알 십(+)자 뒤집기를 만들어 볼까?"라는 생각을 하게 되었다.
어떤 위치를 골라서 십자 뒤집기를 하면,
그 위치의 가로줄에 있는 모든 바둑돌의 색을 반대(1->0, 0->1)로 바꾼 후,
그 위치의 세로줄에 있는 모든 바둑돌의 색을 반대로 바꾸는 것이다.
그 위치에 있는 바둑돌을 제외하고 그 가로/세로줄에 있는 모든 바둑돌 색이 반대로 바뀌게 된다.
흰(1) 돌과 검정(0) 돌이 꽉 채워져 있는 19 * 19 크기의 바둑판 상태와
n 개의 십자 뒤집기 좌표가 입력될 때,
십자 뒤집기를 수행한 결과를 출력해보자.
...
int n, i, j, x, y;
int a[20][20]={};
for(i=1; i<=19; i++) //한 줄씩 바둑판 상황 입력 받기
for(j=1; j<=19; j++)
scanf("%d", &a[i][j]);
scanf("%d", &n); //좌표 개수 입력받기
for(i=1; i<=n; i++) //좌표의 개수만큼
{
scanf("%d %d", &x, &y);
for(j=1; j<=19; j++) //가로 줄 흑<->백 바꾸기
{
if(a[x][j]==0) a[x][j]=1;
else a[x][j] = 0;
}
for(j=1; j<=19; j++) //세로 줄 흑<->백 바꾸기
{
if(a[j][y]==0) a[j][y]=1;
else a[j][y] = 0;
}
}
...
참고
가로 번호, 세로 번호를 사용할 수 있는 2차원 배열을 사용하면
이러한 형태를 쉽게 기록하고 사용할 수 있다. 물론 더 확장한 n차원 배열도 만들 수 있다.
입력 설명
19 줄에 걸쳐서 바둑판의 바둑돌 배치 상태가 입력된다.
그 다음에 십자 뒤집기 횟수(n)가 한 줄로 입력된다.
그 다음에 n 개의 좌표가 스페이스로 구분되어 줄을 바꿔 입력된다.
(0<=n<=10)
그 다음에 십자 뒤집기 횟수(n)가 한 줄로 입력된다.
그 다음에 n 개의 좌표가 스페이스로 구분되어 줄을 바꿔 입력된다.
(0<=n<=10)
출력 설명
십자 뒤집기를 수행한 결과를 출력한다.
입력 예시 Copy
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
2
10 10
12 12
출력 예시 Copy
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 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 0 0 0 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 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
도움
기초100제(c)1 v1.5 : 정보교사 커뮤니티 @컴퓨터과학사랑(CSL)
- 중고등학교 정보 선생님들과 함께 정보수업/방과후/동아리활동 등을 통해 재미있게 배워보세요.
- 모든 내용 및 이미지들은 저작자와의 협의 없이 무단으로 사용할 수 없습니다.
- 중고등학교 정보 선생님들과 함께 정보수업/방과후/동아리활동 등을 통해 재미있게 배워보세요.
- 모든 내용 및 이미지들은 저작자와의 협의 없이 무단으로 사용할 수 없습니다.