비트(bit)주세요

[코드업] - 6096, [기초-리스트] 바둑알 십자 뒤집기 본문

문제풀이/파이썬 기초 100제

[코드업] - 6096, [기초-리스트] 바둑알 십자 뒤집기

yglee730 2021. 7. 20. 20:50
728x90

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

 

[기초-리스트] 바둑알 십자 뒤집기(py)

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

codeup.kr

 

이번 문제는 이차원배열 십자뒤집기 문제입니다.

 

십자뒤집기 :

그 위치에 있는 모든 가로줄 돌의 색을 반대(1->0, 0->1)로 바꾼 후,

다시 그 위치에 있는 모든 세로줄 돌의 색을 반대로 바꾸는 것입니다.
어떤 위치를 골라 집자 뒤집기를 하면, 그 위치를 제외한 가로줄과 세로줄의 색이 모두 반대로 바뀝니다.

 

입력 : 

바둑알이 깔려 있는 상황이 19x19 크기의 정수값으로 입력됩니다.
십자 뒤집기 횟수(n)가 입력됩니다.
십자 뒤집기 좌표가 횟수(n) 만큼 입력됩니다. 

 

출력 :

십자 뒤집기 결과를 출력합니다.

 

 

 

풀이 :

0으로 채워진 19x19 크기의 배열을 만들어줍니다.

배열을 입력받는 동시에 값을 채워 넣어줍니다.

십자 뒤집기 진행 횟수를 입력받습니다.

십자 뒤집기를 할 좌표를 입력받는 동시에 for문으로 십자 뒤집기 게임을 진행합니다.

십자 뒤집기 게임을 진행 한 후 결과를 출력합니다.

 

십자 뒤집기를 코드로 표현할 경우에:

세로줄을 바꾸려면 x의 위치는 반복변수로 놓고, y의 위치는 고정합니다.

반복문을 진행하면서 0이면 1로 바꾸고, 1이면 0으로 바꿉니다.

 

가로줄을 바꾸려면 x의 위치는 고정하고, y의 위치는 반복변수로 놓습니다.

반복문을 진행하면서 0이면 1로 바꾸고, 1이면 0으로 바꿉니다.