Life is.../취미생활

나만의 스도쿠 공략 5번째

소혼 2010. 7. 13. 23:13
반응형

1. 나만의 스도쿠 공략법-1
2. 나만의 스도쿠 공략법-2
3. 나만의 스도쿠 공략법-3
4. 나만의 스도쿠 공략법-4
5. 나만의 스도쿠 공략법-Final(총정리중)


충격이었다. 내 블로그의 대부분의 글은 개발과 관련된 내용인데, 내 블로그에 유입되어 들어온 검색어 1위는 스도쿠였다.

 

물론 요새도 스도쿠를 즐겨 하고 있긴 하지만, 개발만으로도 블로그에할 말이 너무 많아서 스도쿠에 대한 정리를 미뤄왔었는데 검색어 순위를 보고 스도쿠에 대한 나의 무지한 글들을 마무리 지어야겠다는 생각이 들어 이글을 적습니다. 최종적으로 앞의 글들을 모두 총 망라하게 될 예정입니다.

 

*주의*

많은 내용이 앞의 글과 중복될 수 있으며 거의 모든 알고리즘, 생각은내 머리속에 나온 것이라 가장 좋은 방법이라고 보장할 수 없습니다. , 다른 스도쿠 관련 알고리즘을 본적이 없지만, 어차피 해법이 많지않으므로 유사한 내용이 있을 수 있으나 기본 정보를 제외한 모든 내용은 무단복제한 것이 아님을 밝힙니다.(기본정의와 이미지는 일부 차용)

 

스도쿠의 정의

스도쿠는 스위스수학자 레온하르트 오일러가 고안한 마술

사각형에서 유래되었다고 합니다.(http://100.naver.com/100.nhn?docid=798017)


원리는 간단한데, 가로 9, 세로 9칸 총 81칸안에 1부터 9까지의 숫자를 같은 숫자가 겹치지 않게 적으면 됩니다. 이 때, 가로로도 겹치면 안되고 세로로도 겹치면 안되며, 가로세로 3칸씩으로 묶인 사각형(앞으로소사각형이라고 부르겠습니다. 안에서도 그 숫자가 겹치지 않아야 합니다.

 

스도쿠 깨는 법

기초 1) 하나의 숫자를 선택하여,선택한 숫자가 없는 소사각형 안을 채우는 방법

가장 기초적이며 처음 쉽게 접근할 수 있는 방법입니다. 이 방법은첫 번째 글에서 자세한 방법을 기록했습니다. 처음에 가벼운 마음으로 한번 숫자를 훝어 보는 것도 나쁘진않습니다.

 

기초 2) 하나의 칸을 선택하여 1부터 9까지 가능한 숫자를 체크해보는 방법

원시적인 방법이며 많은 시간 낭비를 부릅니다. 하지만 꼭 한번씩은써볼 수 밖에 없네요. 역시 추천하지 않습니다. 첫 번째 글에서 설명하고 있습니다.

 

기초 3) 기록의 도움을 받는 방법

처음에는 이 방법을 많이 사용했지만 지금은 전혀 사용하고 있지 않습니다. 숫자 4개 정도를 기억할 수 있다면 이 방법이 필요하지 않을 것 같습니다. 따라서이 글에서는 이 내용을 상세히 다루지 않습니다. 공략 2공략 3에서 정리한 것을 참고하시기 바랍니다.

 

중급 1) 소사각형의 한 숫자를 선택하여 소사각형의 다른 열(또는 줄)에서 그 숫자를 찾아본다.

제가 많이 쓰는 방법 중에 하나입니다. 기초 1번과, 중급 1, 그리고 다음 중급 2번 정도만으로 어느 정도는 다 깰 수 있다고생각됩니다. 처음 이해하기가 어렵습니다.

 

먼저 옛날에 사용했던 예제를 준비했습니다.

앞서 말했듯 저는 기초 1번을 한번 써보곤 하는데 이 예제에서도 기초 1번 방법을 사용하면 왼쪽 상단에 5라는 숫자를 입력할 수 있습니다. (구분을 쉽게 하기 위해 원래 입력되어 있는 숫자를 회색으로 칠했습니다.)

 


또 없을까요? 기초 1번방법을 써서는 더 찾기 어렵습니다. 하지만 저는 기초 1번방법을 쓰면서 동시에 중급 1번 방법도 같이 고민합니다. 기초 1번으로 8을 선택해보면 안타깝게도 오른쪽 하단의 소사각형은 세 칸이비어있어 어떤 곳에 8을 채워야 할 지 알 수 없습니다.

 

이런 경우 저는 중급 1번의 방법을 고려합니다. 저는 중급 1번 방법을 함께 사용해보려고 합니다. 이 때 적절한 소사각형과 숫자를 선택하는게 중요한데, 반복하다보면익숙해집니다.

저는 우상단 소사각형의 8을 가지고 문제를 풀어보겠습니다.

 

우상단 소사각형의 8을 선택하면서 머리속에 이런 생각을 가져야 합니다.

우상단은이미 모두 해결했다.


만약 우상단의 모든 숫자를 해결했다고 생각하면 두번째 행은 왼쪽 상단 소사각형의 두칸(8)이 비어있게 됩니다. 하지만두번재 행은 저희의 관심이 될 수 없습니다. 왜냐하면 이미 8이존재하기 때문이죠. 세번째 행도 저희의 관심이 아닙니다. 이미 8이 존재합니다.

그럼 오른쪽에서 두번째 열은 어떨까요? 오른쪽에서 두번째 열은 오른쪽하단 소사각형의 두칸(5)만 남았습니다. 이 둘 중 하나는 반드시 8이어야합니다. 그런데 옆의 소사각형들을 보니 우리는 8이 어떤 곳에 들어가야 할지 알 수 있습니다. 8은 상단의 위치에 들어갈 수 밖에 없게 됩니다.

 


중급 2) 선택된 숫자들의 열, 또는 행으로 인해 행 또는 열의 빈칸을 찾는다.
이 방법은 사실 중급 1과 같은 방법이지만, 일전에 정리한 4번째 방법으로 중급1의 응용입니다. 하지만 어지간해서는 쉽게 찾을 수 없습니다.

<이 글은 계속 업데이트 됩니다.>


허접한 글이지만, 도움이 되셨다면 아래 손가락 꾹 눌러주세요.

반응형