스도쿠 풀어주는 프로그램 공개

스도쿠를 풀 때마다 이걸 컴퓨터로 풀어보고 싶었다.
이미 유사한 프로그램들이 많이 나와있지만, 직접 만들어보는 것이랑은 다르니...

그래서 한번 만들어봤다.

혼자 열나게 문제를 푸는 중...


이 프로그램의 기능은 아래와 같다.

1. 주어진 값을 기준으로 문제 풀기
2. 지정된 갯수 만큼 숫자가 남는 문제 생성
3. 저장되어있는 예제 보여주기(3개)
4. 풀이를 파일로 저장


기본적인 알고리즘은 아래와 같다.

1. 27개의 각 칸에 9개(1~9)의 BOOL 배열 생성, true로 설정
2. fixed 된 전 셀에 대해 같은 행, 같은 열, 같은 3x3 칸에서 fixed된 값에 대해 false로 지정
3. 각 행, 각 열, 각 3x3 칸에서 가능한 후보 숫자 중 유일한 것이 있으면 이 값을 fixed 값으로 수정
4. 더 이상 진행할 수 없을 때까지 2-3 반복
5. 27개의 각 칸에 남아있는 후보군 숫자를 일일이 대입

프로그램은 아래 링크에서 다운받을 수 있다.


덧. 위키피디아에 올라와있는 스도쿠의 예제를 보면 답이 2개로 나와있는데, 둘 중 앞의 것만 맞다.
뒤의 것은 5번째 열에 5가 2개고, 3이 없다.
(편집해놓았는데, 아직은 반영이 안된 듯)

위키의 예제를 직접 풀어본 것