간단한 스도쿠 만들기

이 포스트에서는 간단한 스도쿠를 만드는 방법을 설명합니다.
(특정 언어로 스도쿠를 구현하는 방법이 아니라 스도쿠를 만드는 방법 자체를 설명하는 포스트입니다.)

여기서는 가로와 세로 각 9칸씩에 3칸씩 한 구역으로 나뉘는 스도쿠를 기준으로 설명합니다.

위와 같은 형태의 칸입니다. 이 칸을 맨 위의 가로줄부터 채워 봅시다.

1 2 3 4 5 6 7 8 9

다음은 그 바로 아래의 가로줄과 또 그 바로 아래의 가로줄입니다. 2번째 가로줄은 바로 위의 칸의 숫자가 7 이상일 경우 6을 뺀 값을, 아닐 경우는 3을 더한 값을 넣습니다. 3번째 가로줄도 같은 방법입니다. 그 결과는 아래와 같습니다.

1 2 3 4 5 6 7 8 9
4 5 6 7 8 9 1 2 3
7 8 9 1 2 3 4 5 6

이와 같이 맨 위의 가로줄 3개가 모두 한 줄에 한 숫자씩 정확하게 들어감과 동시에 3×3 구역 3곳에도 역시 한 숫자씩 정확하게 들어갔습니다.

이제 나머지 6줄(총 63칸)도 채워 봅시다. 이번에는 어떻게 채워 볼까요? 채울 칸에서 3칸 위로 올라가서 그 숫자가 9면 1을 넣고, 아니면 그 숫자에서 1을 더한 값을 넣습니다. 그 결과는 이렇게 됩니다.

1 2 3 4 5 6 7 8 9
4 5 6 7 8 9 1 2 3
7 8 9 1 2 3 4 5 6
2 3 4 5 6 7 8 9 1
5 6 7 8 9 1 2 3 4
8 9 1 2 3 4 5 6 7
3 4 5 6 7 8 9 1 2
6 7 8 9 1 2 3 4 5
9 1 2 3 4 5 6 7 8

이렇게 기본적인 스도쿠가 완성됐습니다.

자, 이제 여기서 숫자칸을 바꿔치기하면 더 많은 스도쿠를 만들어낼 수 있습니다. 그 방법에 대해 알아 봅시다.

먼저, 한 줄씩 바꿔치기하는 방법입니다.

4 5 6 7 8 9 1 2 3
1 2 3 4 5 6 7 8 9
7 8 9 1 2 3 4 5 6
2 3 4 5 6 7 8 9 1
5 6 7 8 9 1 2 3 4
8 9 1 2 3 4 5 6 7
3 4 5 6 7 8 9 1 2
6 7 8 9 1 2 3 4 5
9 1 2 3 4 5 6 7 8

위와 같이 한 가로줄씩 바꿔치기해도 올바르게 성립됩니다. 다만, 반드시 같은 묶음 안에서 바꿔치기해야 합니다.

4 5 6 7 9 8 1 2 3
1 2 3 4 6 5 7 8 9
7 8 9 1 3 2 4 5 6
2 3 4 5 7 6 8 9 1
5 6 7 8 1 9 2 3 4
8 9 1 2 4 3 5 6 7
3 4 5 6 8 7 9 1 2
6 7 8 9 2 1 3 4 5
9 1 2 3 5 4 6 7 8

세로줄끼리 바꿔치기해도 됩니다. 이 때도 마찬가지로 같은 묶음 안에서 바꿔치기해야 한다는 점은 변함이 없습니다.

4 5 6 7 9 8 1 2 3
1 2 3 4 6 5 7 8 9
7 8 9 1 3 2 4 5 6
3 4 5 6 8 7 9 1 2
6 7 8 9 2 1 3 4 5
9 1 2 3 5 4 6 7 8
2 3 4 5 7 6 8 9 1
5 6 7 8 1 9 2 3 4
8 9 1 2 4 3 5 6 7

이와 같이 가로줄 3줄 묶음끼리 통째로 바꿔치기할 수도 있습니다. 물론 세로줄 3줄 묶음도 바꿔치기가 됩니다.

4 5 6 7 1 8 9 2 3
9 2 3 4 6 5 7 8 1
7 8 1 9 3 2 4 5 6
3 4 5 6 8 7 1 9 2
6 7 8 1 2 9 3 4 5
1 9 2 3 5 4 6 7 8
2 3 4 5 7 6 8 1 9
5 6 7 8 9 1 2 3 4
8 1 9 2 4 3 5 6 7

숫자끼리 바꿔치기한 예입니다. 여기서는 1과 9를 서로 맞바꿨습니다.

이 외에도 좌우반전, 상하반전, 스도쿠판 회전을 통한 바꿔치기도 가능합니다.

이를 계속 반복하다 보면,

1 8 4 3 2 9 6 7 5
6 7 5 1 4 8 3 9 2
3 9 2 6 5 7 1 8 4
5 3 9 4 7 6 2 1 8
2 1 8 5 9 3 4 6 7
4 6 7 2 8 1 5 3 9
9 2 1 7 3 5 8 4 6
7 5 3 8 6 4 9 2 1
8 4 6 9 1 2 7 5 3

이와 같이 됩니다.

이렇게 만든 스도쿠는 만들기 쉽다는 장점이 있으나, 숫자의 배열이 거의 일정하게 되어 있어 답을 너무 쉽게 예측할 수 있게 되어 버린다는 단점도 있습니다.
이 방법 말고 다른 방법으로 만들면 난이도 있는 스도쿠를 만들 수 있습니다. 어쨌든 이 포스트는 참고용으로 읽어주시기 바랍니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다