1097 : [기초-2차원배열] 바둑알 십자 뒤집기
바둑판(19 * 19)에 흰 돌(1) 또는 검정 돌(0)이 모두 꽉 채워져 놓여있을 때,
n개의 좌표를 입력받아 십(+)자 뒤집기한 결과를 출력하는 프로그램을 작성해보자.
참고
가로 번호, 세로 번호를 사용할 수 있는 2차원 배열을 사용하면
이러한 형태를 쉽게 기록하고 사용할 수 있다. 물론 더 확장한 n차원 배열도 만들 수 있다.
1097번 문제, Taemin's Github 바로가기✨
바둑알이 깔려 있는 상황이 19 * 19 크기의 정수값으로 입력된다.
십자 뒤집기 횟수(n)가 입력된다.
십자 뒤집기 좌표가 횟수(n) 만큼 입력된다. 단, n은 10이하의 자연수이다.
해당 문제의 입력 예시 :
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
19 * 19 를 채울 검은돌(0)과 흰돌(1)을 전부 입력받아 저장합니다.
이후 기준좌표가 될 두 지점(2개)를 입력받아 coordinates에 저장합니다.
coordinates의 값 만큼 반복하여,
기준 좌표값 X와 Y를 입력받고
X행과 Y열 값을 조건에 따라 변경해줍니다.
값의 변경이 완료된 2차원 배열 goBaduk을 출력해줍니다.
저는 2차원 배열을 처음 학습할 때 연습장에 그려가며 이해 했는데요.
Row(행), Column(열), 인덱스 0번째 행에 0번째 열 = x[0][0] 라고 생각한 뒤
5 x 5 판을 그려봤습니다.
ㅁㅁㅁㅁㅁ
ㅁㅁㅁㅁㅁ
ㅁㅁㅁㅁㅁ
ㅁㅁㅁㅁㅁ
ㅁㅁㅁㅁㅁ
예를들어, 만약 1부터 25까지의 수가 저장 돼 있다면,
int[][] arrExam =
{{1, 2, 3, 4, 5}, //[0]번째 행, [0~4]번째 열
{6, 7, 8, 9, 10}, //[1]번째 행, [0~4]번째 열
{11, 12, 13, 14, 15},
{16, 17, 18, 19, 20},
{21, 22, 23, 24, 25}};
출력 결과로 볼수있는 내용은 아래 캡쳐된 사진과 같습니다.
바둑돌 뒤집기로 돌아간다면,
2차원 배열에 입력될 10, 10이 어떤 위치를 뜻하는지 알 수 있습니다.
바로 위 화면 21번째 줄부터 23번째 줄에 있는 출력의 결과가 무엇일지도 쉽게 짐작할 수 있을것 입니다.
'Data Structures and Algorithms > Problems' 카테고리의 다른 글
CodeUp 1163 : 당신의 사주를 봐 드립니다 2 (0) | 2022.06.15 |
---|---|
문제 : 하루가 지난 글의 표기. (0) | 2022.04.27 |
CodeUp 예제 풀이 1096번문제, 바둑판에 흰 돌 놓기 (0) | 2022.04.06 |
CodeUp 예제 풀이 1093번문제, 이상한 출석 번호 부르기 (0) | 2022.04.05 |
CodeUp 예제 풀이 1092번문제Java 최소 공배수 (0) | 2022.04.05 |