2010년 4월 18일 일요일

네이버 스도쿠의 비밀

네이버의 5분 미니 게임이라는 것이 있다. 매일 5개의 미니게임이 서비스되는데 그 중 스도쿠라는 것이 있다.

 

개인적으로 스도쿠를 시작한 것은 2주 정도 된 것 같다. 여러 가지 해결 방법을 생각해보고 최근에 스도쿠 생성을 어떻게 하면 좋을까? 라는 생각을 하면서 한달치의 스도쿠를 한번에 풀면서 네이버 스도쿠의 생성 알고리즘을 파악할 수 있었다.

 

문제는 네이버의 생성 알고리즘은 너무 단순해서 패턴이 보인다는 것이다. 그래서 이제 너무 쉽게 네이버의 스도쿠를 풀 수 있다.

 

 

위의 그림은 네이버 스도쿠이다. 이렇게 보면 전혀 패턴이 보이지 않을 것이다. 그럼 다음 그림을 보자.

 

 

갈색 블럭으로 칠해진 것과 빨간색 블럭으로 칠해진 것 그리고 칠해지지 않은 블럭 이렇게 3가지 색 블럭이 있는 것이 보일 것이다. 각 색의 블럭은 동일한 숫자로 구성된다.

 

때문에 갈색 블럭은 1,3,6이 세 숫자를 회전하고 각 3x3블럭마다 셔플해서 구성된다. 마찬가지로 빨간색은 4,8,9이 세 숫자를 회전시켜서 구성되고, 칠해지지 않은 블럭은 2,5,7로 구성된다.

 

결국 저 세가지 블럭에 들어가는 숫자만 파악이 되면 쉽게 그 숫자들을 회전시키서 문제를 풀 수 있다.

 

모든 스도쿠가 이런 패턴을 가지는 것은 아니다. 하지만 이런 NP문제가 이렇게 패턴을 가지게 생성이 되고 그 패턴이 파악된다면 그 흥미가 떨어질 수 밖에 없을 것이다.

댓글 2개: