심사문제를 통과했기 때문에 풀이에는 문제가 없습니다.
풀이 방식은 여러 가지가 있을 수 있습니다.
4중첩 루프는 필연입니다. 계산량이 많습니다.
100x100 크기에서 3x3로 계산을 해야 하기 때문에 4중첩 루프가 됩니다. 계산량이 많습니다.
실제로 컴퓨터 그래픽(영상 처리), 딥 러닝 등은 모두 이러한 행렬 연산을 이용합니다. 행렬 연산을 매우 많이 합니다.
풀 HD 화면이 1920*1080 해상도입니다. 1픽셀이라면
1920*1080 = 2,073,600
약 207만 번의 계산이 필요합니다. 하지만 이건 흑백이죠. 칼라라면 24비트 칼라이면 24비트 = 3바이트이고, 32비트 칼라이면 4바이트이죠.
207 * 4 = 828만 번의 연산이 필요합니다.
CPU 코어는 요즘도 8코어 전후입니다. 8개의 코어로 나눠서 계산해도 한참 걸리겠죠?
그래픽 카드는 보통 1024~2048개의 코어가 달려있습니다. 더 많은 제품도 있죠. 각각의 성능은 작지만, RGB 색상 값의 범위는 0~255이니 작은 수를 많이 계산할 수만 있으면 됩니다.
지뢰찾기는 이러한 행렬 연산의 기초 연습입니다.
문제에서 제대로 푸는 방식은 심사문제 제출 시에 볼 수 있는 해설에도 있지만, continue를 사용하는 것입니다. 흐름 제어를 사용할 수 있느냐입니다.
해당 코드의 문제 풀이는 except와 pass를 사용해서 continue를 흉내낸 것으로 보입니다. 이것도 풀이 방법의 하나가 될 수 있습니다.
다만, 예외는 CPU 시간을 많이 사용합니다. 따라서 대규모 행렬 처리라면 바람직하지 않은 코드입니다. 물론 의도한 동작은 완수했고, 심사는 통과했습니다. 그러나 보다 나은 코드라면 continue 제어 흐름을 쓰는 게 바람직합니다. 예외를 발생시키지 않기 때문에 더 빠르게 처리됩니다.
참고하세요.