나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-11-13 14:43:03

스도쿠/공략법


파일:상위 문서 아이콘.svg   상위 문서: 스도쿠
1. 개요2. 도입
2.1. 용어2.2. 후보 숫자2.3. 알고리즘
3. 기초
3.1. 가득찬 유닛3.2. 숨겨진 하나
3.2.1. 숨겨진 하나(상자)3.2.2. 숨겨진 하나(행/열)
3.3. 드러난 하나
4. 초급
4.1. 교차로
4.1.1. 교차로(포인팅)4.1.2. 교차로(클레이밍)
4.2. 부분집합
4.2.1. 드러난 부분집합
4.2.1.1. 드러난 둘4.2.1.2. 드러난 셋4.2.1.3. 드러난 넷
4.2.2. 숨겨진 부분집합
4.2.2.1. 숨겨진 둘4.2.2.2. 숨겨진 셋4.2.2.3. 숨겨진 넷
4.2.3. 부분집합 간의 상보적 관계
4.3. 물고기(피쉬)
4.3.1. X-윙4.3.2. 황새치(스워드피쉬)4.3.3. 해파리(젤리피쉬)4.3.4. 물고기와 부분집합의 상보적 관계
4.4. 유일성 논법
5. 중급
5.1. 윙
5.1.1. XY-윙5.1.2. XYZ-윙5.1.3. WXYZ-윙
5.2. 연결
5.2.1. 심플 컬러링5.2.2. X-사슬5.2.3. XY-사슬
5.2.3.1. W-윙
5.3. 핀드 피쉬
5.3.1. 핀드 X-윙
5.3.1.1. 사시미 X-윙
5.3.2. 핀드 스워드피쉬5.3.3. 핀드 젤리피쉬
5.4. 버그5.5. 형태 겹침
6. 고급
6.1. 거의 잠긴 집합
6.1.1. 거의 잠긴 집합-XZ
6.1.1.1. 거의 잠긴 집합-사슬
6.1.2. 부분집합 제거
6.1.2.1. 죽음의 꽃
6.1.3. Sue de Coq6.1.4. Firework
6.2. 추론
6.2.1. 3D 메두사6.2.2. 교대 추론 사슬
6.2.2.1. 그룹 교대 추론 사슬6.2.2.2. 거의 잠긴 집합을 포함한 교대 추론 사슬
6.3. 피쉬 변형
6.3.1. 수호자
7. 최후의 수단
7.1. 강제 사슬
7.1.1. Digit Forcing Chains7.1.2. Cell Forcing Chains7.1.3. Unit Forcing Chains7.1.4. 강제 그물
7.2. 보우만의 빙고7.3. 무차별 대입법
8. 문서 양식

1. 개요

스도쿠의 공략법에 대해 정리한 문서.

기본 스도쿠의 공략법 위주로 서술되어 있지만 다른 변형 스도쿠도 대부분 유닛의 종류가 변한 것 뿐이기에 마찬가지의 기법을 적용할 수 있다.
다만 킬러 스도쿠의 경우 가쿠로의 특징을 지닌 만큼 특별한 공략이 따로 존재하는데 이는 스도쿠/공략법/킬러 스도쿠를 참조하자.

이 문서는 이해와 설명의 용이성, 각 기법의 적용 범위와 난이도를 모두 고려하여 순서를 배치하였다. 따라서 일부 항목의 경우 그 위치에 비해 적용의 난이도가 높은 경우가 존재한다. 대부분 발상이 동일하되 범위의 확장에 의한 것으로 넘어가도 좋다.

2. 도입

2.1. 용어

이 문서에서는 다음과 같은 용어를 사용한다.
편집자는 굵게 표시된 용어로 통일하는 것을, 영어를 사용할 때는 한글을 병기하는 것을 권장한다.
이 문서에서는 행을 A~I까지, 열을 1~9까지 사용하여 3행과 7열이 만나는 단 하나의 칸을 셀 C7으로 통일한다.[1] 이때 용어 '셀' 사용을 허용한다.

2.2. 후보 숫자

스도쿠 관련 책자들을 보면 풀다가 막힐 때 후보 숫자를 적어 다른 기술을 쓰는 것을 흔히 볼 수 있다. 거의 대부분의 스도쿠 어플들은 후보 숫자 기능을 지원하지만,[2] 오프라인에서 종이로 푸는 스도쿠 문제들은 후보 숫자를 적을 칸의 넓이가 부족한 경우가 대다수이다.
이때는 공책 등 다른 곳에다 대충 모양을 크게 그려놓고 거기에 후보 숫자를 대신 적거나, 정말 중요한 부분에만 적어두거나, 아니면 그냥 머릿속으로 다 해결하거나 하는 방법밖에는 없다.
막히는 부분이 있다면 대충 보다가 일을 그르치지 말고 의심되는 부분의 후보 숫자들을 적어나가며 돌파구를 찾는 것이 바람직하다.

2.3. 알고리즘

난이도가 낮은 스도쿠를 제외한다면 스도쿠를 해결할 때는 자신만의 알고리즘을 가지고 있는 편이 좋다. 아래 예시를 참조하여 자신만의 풀이 방법을 만들어 보자.
가득찬 유닛(Full House)>숨겨진 하나(Hidden Single)>교차로(Intersection)>X-윙(X-Wing)>드러난 하나(Naked Single)[4]>드러난 둘/셋(Naked Pair/Triple)>숨겨진 둘/셋(Hidden Pair/Triple)>유일성 논법

이 이후의 기법은 후보 숫자를 사용하지 않고는 사용하기 힘들다. 후보 숫자를 처음부터 적지 않고 위 알고리즘을 따르다 밑으로 넘어가는 것도 괜찮은 방법이다.
기본적으로 이 문서에서 서술되어 있는 순서대로 기초>초급>중급의 순으로 적용해나가면서 후보 숫자를 지워나가고 다시 기초부터 반복하면 된다. 다만 숨겨진 넷, 젤리피쉬와 같은 경우 발상이 동일하여 같이 묶어 놓았지만 발견과 적용 난이도는 숨겨진 둘이나 X-윙보다 매우 높다는 사실에 유의하자.

가득찬 유닛(Full House)>숨겨진 하나(Hidden Single)>드러난 하나(Naked Single)>교차로(Intersection)>X-윙(X-Wing): 여기까진 후보 숫자 하나에만 집중하면 된다.
드러난 둘/셋(Naked Pair/Triple)>숨겨진 둘/셋(Hidden Pair/Triple)>심플 컬러링(Simple Coloring)>XY-윙(XY-Wing)>X-사슬(X-chain)>드러난/숨겨진 넷(Naked/Hidden Quad)>스워드피쉬(Swordfish)>핀드/사시미 X-윙(Finned/Sashimi X-wing)>XY-사슬(XY-Chain)>젤리피쉬(Jellyfish)>기타 피쉬 변형들>기타 고급 기술

스도쿠 아래에 나와 있는 기술들을 여기에 써먹어보도록 하자.

3. 기초

후보 숫자를 이용하지 않고도 사용할 수 있는 기법들. 어떤 난이도의 스도쿠를 풀든 이 기법들은 반드시 마스터하고 넘어가야 한다.

3.1. 가득찬 유닛

Full House[5]
어떤 유닛에 8개의 숫자가 채워져 있어서 나머지 하나를 바로 채울 수 있는 경우이다. 가장 기본적인 방법이지만 등잔 밑이 어둡다고 다른 풀이법만 보다가 정작 이걸 깜빡하고 넘어가는 경우가 종종 있다.
1A6984537
168
24B

위와 같은 형태에서, A와 B에 들어갈 수 있는 수는 각각의 행과 상자에서 없는 수를 채우면 된다. A에는 2가 들어가고 B에는 9가 들어간다.

3.2. 숨겨진 하나

Hidden Single, Pinned Digit
스도쿠의 규칙 상 한 유닛에는 1~9까지의 숫자가 존재해야한다. 이때 한 유닛 안의 특정 칸 C를 제외한 모든 나머지 칸에 특정한 후보 숫자가 들어가지 못할 때, 특정 칸 C에 그 후보 숫자가 들어가야함을 알 수 있다.

숨겨진 부분집합으로의 확장을 고려한다면 한 유닛 안에 특정 후보 숫자를 가질 수 있는 칸이 하나이기에 그 칸의 다른 후보 숫자를 모두 지울 수 있다고 이해해도 괜찮다.

말로만 들으면 어렵게 보이지만 아래 예시를 보면 스도쿠 전략 중 가장 쉽다는 것을 알 수 있다.

3.2.1. 숨겨진 하나(상자)

Hidden Single(Box)
534
927
48
81394
798
5872
57
285
174
[ 정답 보기 ]
||<tablebordercolor=#000000,#FFFFFF><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>8||<width=34px><:>6||<width=34px><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>9||<width=34px><bgcolor=#EEEEEE,#555555><:>5||<width=34px><bgcolor=#EEEEEE,#555555><:>7||<width=34px><:>3||<width=34px><:>4||<width=34px><:>1||
149863275
375124986
281375694
734296158
596418723
953781462
428639517
617542839

6번 상자에서 주어진 숫자는 2, 4, 7, 8, 9이며, 채워넣어야 할 숫자는 1, 3, 5, 6이다. 이 중에서 숫자 5에 주목하면,
534
927
48
81394
798
5872
57
285
174
6번 상자에서 셀 E8을 제외한 어떠한 칸에도 숫자 5가 들어갈 수 없다. 따라서 셀 E8의 정답은 5이다.

3.2.2. 숨겨진 하나(행/열)

Hidden Single(Row/Column)
234
946875
481
9845
45128
7654
98264
34879
6548
[ 정답 보기 ]
||<tablebordercolor=#000000,#FFFFFF><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>5||<width=34px><:>8||<width=34px><:>1||<width=34px><bgcolor=#EEEEEE,#555555><:>7||<width=34px><bgcolor=#EEEEEE,#555555><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>9||<width=34px><:>3||<width=34px><:>4||<width=34px><:>6||
239461875
674358129
926834517
453172698
817695234
798216453
342587961
165943782

7열에서 주어진 숫자는 1, 3, 4, 5, 8, 9이며, 채워넣어야 할 숫자는 2, 6, 7이다. 이 중에서 숫자 6에 주목하면,
234
946875
481
9845
45128
7654
98264
34879
6548
7열에서 셀 E7을 제외한 어떠한 칸에도 숫자 6이 들어갈 수 없다. 따라서 셀 E7의 정답은 6이다.

3.3. 드러난 하나

Naked Single, Forced Digit, Sole Candidate
후보 숫자가 하나인 칸을 채워넣는 것. 후보 숫자가 하나면 들어갈 수 있는 것이 그것밖에 없으므로 쉽게 채워넣을 수 있다. 가득찬 유닛(Full House)의 연장선이자 가장 기본적인 방법이지만 후보 숫자를 적어놓지 않는다면 찾는 것이 어려울 수 있다.
1728639
4
2
26
461237
48
5
9
8632519
[ 정답 보기 ]
||<tablebordercolor=#000000,#FFFFFF><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>4||<width=34px><:>5||<width=34px><:>1||<width=34px><bgcolor=#EEEEEE,#555555><:>7||<width=34px><bgcolor=#EEEEEE,#555555><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>8||<width=34px><:>6||<width=34px><:>3||<width=34px><:>9||
239546718
678319254
382675491
946182375
517934826
795463182
124897563
863251947

정중앙에 있는 셀 E5를 보면, 5행에는 1, 2, 3, 4, 6, 7이 있고, 5열에는 2, 4, 5, 9이 있으며, 5번 상자에는 1, 2, 4, 6이 있다.
1728639
4
2
26
461237
48
5
9
8632519
셀 E5에는 이들이 전부 들어갈 수 없으므로, 후보 숫자는 8밖에 없고 결국 8이 들어가야 한다.

4. 초급

후보 숫자를 적거나 머리 속에 상상하며 적용할 수 있다.
이 이후의 기법들은 모두 후보 숫자를 특정하기보다는 그 가짓수를 줄이는 것에 초점을 맞춘다.

4.1. 교차로

Intersection, 상호작용이라고도 한다.
한 유닛에서 특정 숫자가 들어갈 수 있는 곳이 한정적임을 이용해 나머지 영역에서 후보 숫자를 제거하는 방법이다.

4.1.1. 교차로(포인팅)

Intersetion(Pointing)
상자 속에 특정 후보 숫자가 들어갈 수 있는 칸들이 모두 한 행(또는 열)에 나열되어 있을 때, 그 행(또는 열)에서 상자에 속하지 않는 나머지 칸들에서 그 후보 숫자를 제거할 수 있다.
986
643
21
329
6481
173
63
189
541
[ 정답 보기 ]
||<tablebordercolor=#000000,#FFFFFF><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>9||<width=34px><:>4||<width=34px><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>3||<width=34px><bgcolor=#EEEEEE,#555555><:>7||<width=34px><bgcolor=#EEEEEE,#555555><:>1||<width=34px><:>8||<width=34px><:>6||<width=34px><:>5||
187596432
635284179
873612954
569438217
421759386
796143528
218965743
354827691

드러난 하나(Naked Single)와 숨겨진 하나(Hidden Single)를 반복하면 다음과 같이 23개의 칸이 남는다.
9437186A
1859643B
632841C9
736129
569438D1E
2175936
96135F
18953
3548791
3번 상자에서 남아 있는 숫자는 2, 5, 7이고, 이 중에서 2는 C에 들어갈 수 없다. 즉, 3번 상자에서 2는 A 또는 B에만 들어갈 수 있다.(3번 상자에서 후보 숫자 2가 들어갈 수 있는 칸은 9열에 일렬로 나열되어 있다.)

이제 9열을 확인해보면, A, B, E, F 중에서 A와 B에 2가 반드시 들어간다고 했으므로 E와 F에는 2가 들어갈 수 없다.

여기까지가 교차로(포인팅)의 개념이다. 이후 숨겨진 하나(Hidden Single)를 이용하면 D에는 2가, E에는 7이 들어감을 알 수 있다.

4.1.2. 교차로(클레이밍)

Intersetion(Claiming), Box Reduction
원리는 포인팅과 완전히 같으며 순서만 반대일 뿐이다. 한 행(또는 열)에 특정 후보 숫자가 들어갈 수 있는 칸들이 모두 한 상자에만 존재할 때, 상자에서 그 행(또는 열)에 속하지 않는 나머지 칸들에서 그 후보 숫자를 제거할 수 있다.
1754238
3512
2861
897345621
5268
2754
78921
612847
516728
[ 정답 보기 ]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>1||<width=34px><:>7||<width=34px><:>5||<width=34px><bgcolor=#EEEEEE,#555555><:>4||<width=34px><bgcolor=#EEEEEE,#555555><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>3||<width=34px><:>8||<width=34px><:>9||<width=34px><:>6||
364589712
928671435
897345621
541296378
236718549
783952164
612834957
459167283

1행에 후보 숫자 9가 들어갈 수 있는 칸을 찾아보자.
1754238
3512
2861
897345621
5268
2754
78921
612847
516728
당연하게도 A8, A9의 두 칸만 존재한다. 즉, A행에서 후보 숫자 9가 들어갈 수 있는 칸이 3번 상자에 모두 포함되므로 3번 상자의 노란색으로 표시된 다른 칸은 후보 숫자 9를 가질 수 없다.

이 스도쿠는 앞선 공략법만으로는 어떠한 칸의 숫자도 알 수 없다. 그러나 이 스도쿠에는 아직 교차로(포인팅)를 이용하여 후보 숫자를 줄일 수 있는데 복습 겸 한 번 찾아보자.(3개가 존재한다.)
[ 해설 보기 ]
1. 7번 상자에서 후보 숫자 3을 가지는 칸은 모두 3열 위에 존재한다. 7번 상자에 속하지 않는 3열 위의 칸(B3, E3, F3)은 후보 숫자 3을 가질 수 없다.

2. 7번 상자에서 후보 숫자 9를 가지는 칸은 모두 9행 위에 존재한다. 7번 상자에 속하지 않는 9행 위의 칸(I9)은 후보 숫자 9를 가질 수 없다.

3. 9번 상자에서 후보 숫자 4를 가지는 칸은 모두 9열 위에 존재한다. 9번 상자에 속하지 않는 9열 위의 칸(A9, C9, F9)은 후보 숫자 4를 가질 수 없다.

4.2. 부분집합

Subsets
스도쿠의 81개의 칸을 동시에 모두 생각하는 것은 불가능하므로 우리는 몇 개의 작은 부분으로 나눌 것이다.
이때, 한 유닛에서 n개의 칸과 n개의 후보 숫자가 다른 칸 또는 후보 숫자와 분리될 수 있으면 그것을 부분집합이라 한다.

후보 숫자를 모두 적었을 때 직접 드러나는 경우를 드러난(Naked) 부분집합, 유닛 내 다른 칸과의 관계를 통해 간접적으로 알 수 있는 경우를 숨겨진(Hidden) 부분집합이라 하며, 칸의 개수에 따라 둘(Pair)/셋(Triple)/넷(Quad)으로 구분한다.

한 유닛에서 n개의 칸이 드러난 부분집합을 이룬다면, 그 유닛의 나머지 칸은 숨겨진 부분집합을 이룬다.
반대로 n개의 칸이 숨겨진 부분집합을 이룬다면, 그 유닛의 나머지 칸은 드러난 부분집합을 이룬다.
이러한 관계를 상보적 관계라 하며, 자세한 내용은 '부분집합 간의 상보적 관계' 문단에 설명되어 있다.

이 문서에서는 부분집합이 다섯(Quint) 이상인 경우는 다루지 않는다. 유닛의 총 칸 개수가 9개이기 때문에, 드러난/숨겨진 넷을 찾을 수 있다면 그와 상보적인 숨겨진/드러난 다섯을 찾을 수 있기 때문이다. 숨겨진 넷을 찾기 어렵거나, 칸의 개수가 10개 이상인 확장된 스도쿠라면 이러한 다섯(Quint)이 유용할 수 있다.

4.2.1. 드러난 부분집합

Naked Subsets
이름에서 알 수 있듯이 드러난 하나(Naked Single)의 연장선이다.

한 유닛의 n개의 칸이 총 n개의 후보 숫자만을 가지는 경우(중복되는 숫자는 한 번만 센다), n개의 후보 숫자는 그 n개의 칸들에만 들어갈 수 있음을 이용하여 다른 칸의 후보 숫자들을 제거한다.
같은 유닛에 속하는 n개의 칸을 자신이 마음대로 골랐을 때, 그 n개의 칸에 있는 후보 숫자가 합쳐서 n개라면 드러난 부분집합을 이 유닛에 적용할 수 있다.

드러난 하나는 한 유닛의 1개의 칸이 총 1개의 후보 숫자만을 가지므로, 같은 유닛의 나머지 칸은 그 1개의 후보 숫자를 가지지 못한다.
그렇다면 드러난 둘은 한 유닛의 2개의 칸이 총 2개의 후보 숫자만을 가지므로, 같은 유닛의 나머지 칸은 그 2개의 후보 숫자를 가지지 못한다고 이해할 수 있다.
드러난 셋, 넷 역시 마찬가지로 이해할 수 있다.

기초 기법을 모두 적용시켰다는 가정하에 드러난 부분집합을 적용하려는 유닛에 최소 2개의 칸이 더 비어 있어야 한다. 예를 들어, 드러난 둘/셋/넷은 각각 4, 5, 6칸이 유닛에 비어있어야 한다.[6]
4.2.1.1. 드러난 둘
Naked Pair
한 유닛의 2개의 칸이 2개의 후보 숫자만을 가지는 경우, 다른 칸들에서 그 후보 숫자를 제거할 수 있다.
즉, 어떤 유닛에 포함되는 두 칸에 들어갈 수 있는 후보 숫자가 X, Y로 같다면 그 두 칸이 포함된 유닛의 다른 칸들은 후보 숫자 X, Y를 가질 수 없다.

먼저 아래의 스도쿠를 드러난 하나(Naked Single)와 숨겨진 하나(Hidden Single), 교차로만으로 최대한 풀어보자.
549
815
76
76
43
293
16
2593
845
[ 정답 보기 ]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>1||<width=34px><:>7||<width=34px><:>6||<width=34px><bgcolor=#EEEEEE,#555555><:>5||<width=34px><bgcolor=#EEEEEE,#555555><:>3||<width=34px><bgcolor=#EEEEEE,#555555><:>2||<width=34px><:>8||<width=34px><:>4||<width=34px><:>9||
938164725
452798613
387951462
619423587
524687931
791346258
265819374
843275196

그러면 다음과 같이 빈칸 57개 중 48개가 남을 것이다.
ABC5DEF49
815
27963
7916
43
246793
16
25893
845
1행에 있는 모든 빈칸의 후보 숫자는 다음과 같다.
A : 1, 3, 6, 7
B : 1, 3, 6, 7
C : 3, 6
D : 3, 6
E : 2, 8
F : 1, 2, 7, 8

여기서 C에 3을 넣으면 D는 무조건 6이 되고, C에 6을 넣으면 D는 무조건 3이 된다. 즉, 1행에서 3과 6은 C와 D에만 들어갈 수 있으며, A, B, E, F에는 들어갈 수 없다. 따라서 A와 B에서 후보 숫자 3, 6을 제거할 수 있다.
A : 1, 7
B : 1, 7
C : 3, 6
D : 3, 6
E : 2, 8
F : 1, 2, 7, 8

같은 방법으로 F에서 후보 숫자 1, 7을 제거할 수 있다.
4.2.1.2. 드러난 셋
Naked Triple
한 유닛의 3개의 칸이 3개의 후보 숫자만을 가지는 경우, 다른 칸들에서 그 후보 숫자를 제거할 수 있다.
즉, 한 유닛에 존재하는 어떤 세 칸에 들어갈 수 있는 후보 숫자가 오직 X, Y, Z뿐이라면 유닛에 포함된 그 칸을 제외한 나머지 칸은 후보 숫자 X, Y, Z를 가질 수 없다.

혼동하기 쉬운 것은 세 칸이 X, Y, Z 모두를 후보 숫자로 가져야한다고 생각하는 것이다. 드러난 셋은 꼭 그럴 필요가 없으며 다음과 같은 네 개의 경우로 나뉘어질 수 있다.
1. (X, Y, Z), (X, Y, Z), (X, Y, Z)
2. (X, Y, Z), (X, Y, Z), (X, Y)
3. (X, Y, Z), (X, Y), (X, Z)
4. (X, Y), (X, Z), (Y, Z)
627135
234
352
732
31287
4273
3721
382
291873
[ 정답 보기 ]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>6||<width=34px><:>4||<width=34px><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>7||<width=34px><bgcolor=#EEEEEE,#555555><:>1||<width=34px><bgcolor=#EEEEEE,#555555><:>8||<width=34px><:>9||<width=34px><:>3||<width=34px><:>5||
951234768
783956421
867193542
319425687
425867319
538672194
174389256
296541873
627135
234
352
732
31287
42ABC73DE
3721
382
291873

6행의 후보 숫자를 적절히 나열하면 다음과 같다.
A: 5, 6, 8, 9
B: 1, 8(5번 상자에서 D4와 숨겨진 둘을 통해 후보 숫자를 추릴 수 있다. 이는 아래에 소개되므로 지금은 넘어가도 좋다.)
C: 6, 9
D: 1, 6, 9(5는 교차로를 통해 제거할 수 있다. 9번 상자에서 G8, H8만 5를 가질 수 있기에 F8은 5가 될 수 없다.)
E: 1, 6, 9

C, D, E는 후보 숫자로 1, 6, 9만 가지며[7] 6행의 다른 칸에 이 숫자를 가지면 모순이 발생함을 알 수 있다.
따라서 A, B의 후보숫자에 1, 6, 9를 다음과 같이 지울 수 있다.
A: 5, 8
B: 8
C: 6, 9
D: 1, 6, 9
E: 1, 6, 9

가득찬 유닛(Full House)를 이용하면 A는 5, B는 8이다.
4.2.1.3. 드러난 넷
Naked Quad
드러난 부분집합의 최종 보스.
한 유닛의 4개의 칸이 4개의 후보 숫자만을 가지는 경우, 다른 칸들에서 그 후보 숫자를 제거할 수 있다.
36825
5834
19
29
9362
25
46
6893
6952
[ 정답 보기 ]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>7||<width=34px><:>3||<width=34px><:>6||<width=34px><bgcolor=#EEEEEE,#555555><:>8||<width=34px><bgcolor=#EEEEEE,#555555><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>9||<width=34px><:>4||<width=34px><:>1||<width=34px><:>5||
582134679
194567238
421958367
957346182
863712954
319275846
245681793
678493521

이 스도쿠를 기초 기법만으로 풀어보면 다음과 같이 39칸이 남는다.
36829A5
58134B
19567C
298D
936E2
672F5
927G46
268H93
64952
7열의 모든 칸의 후보 숫자를 구해보면 다음과 같다.
A: 1, 4, 7
B: 2, 6, 7, 9
C: 2, 3, 4, 8
D: 1, 3, 4, 6, 7
E: 1, 4, 7, 8
F: 1, 3, 4, 8, 9
G: 1, 8
H: 1, 7
셀 A7, E7, G7, H7이 가지고 있는 후보 숫자는 다 합해봐야 1, 4, 7, 8 등 4개뿐이다. 따라서 같은 열의 다른 칸은 이 후보 숫자를 가질 수 없다.

A: 1, 4, 7
B: 2, 6, 9
C: 2, 3
D: 3, 6
E: 1, 4, 7, 8
F: 3, 9
G: 1, 8
H: 1, 7

4.2.2. 숨겨진 부분집합

Hidden Subset
드러난 부분집합은 하나의 유닛에서 n개의 칸이 도합 n개의 후보 숫자를 가지는 경우를 찾았다.

숨겨진 부분집합은 그 반대로, 하나의 유닛에서 n개의 후보 숫자가 n개의 칸에만 존재하는 경우를 찾고, 나머지 후보 숫자를 그 n개의 칸에서 지운다.

드러난 부분집합에서와 같은 이유로, n개의 후보 숫자가 총 n개의 칸에만 존재한다면 해당 칸들은 그 n개의 후보 숫자만을 가질 수 있기 때문이다.

이때 숨겨진 둘은 한 유닛에 4개 이상, 숨겨진 셋은 6개 이상, 숨겨진 넷은 8개 이상 칸이 비어 있어야 하위 공식[8]을 이용하지 않고 찾을 수 있다. 즉, 숨겨진 넷은 정말로 희귀한 기법이다.
4.2.2.1. 숨겨진 둘
Hidden Pair
하나의 유닛에서 2개의 후보 숫자가 2개의 칸에만 존재할 때, 나머지 후보 숫자를 그 2개의 칸에서 지울 수 있다.
ABCDEFGHI
9467
76841
39718
7831
513872
75261
54328
7
[ 정답 보기 ]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>5||<width=34px><:>8||<width=34px><:>3||<width=34px><bgcolor=#EEEEEE,#555555><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>1||<width=34px><bgcolor=#EEEEEE,#555555><:>9||<width=34px><:>4||<width=34px><:>6||<width=34px><:>7||
914637825
276854139
349721586
728965341
651348792
497582613
165493278
832176954
ABCDEFGHI
9467
76841
39718
7831
513872
75261
54328
7

A~I까지 후보 숫자를 나열하면 다음과 같다.
A: 1, 2, 5, 8
B: 1, 2, 3, 8
C: 2, 3
D: 1, 2, 9
E: 1, 2, 3, 5, 9
F: 5, 9
G: 4, 5, 8, 9
H: 2, 3, 4, 5, 6, 7, 9
I: 3, 4, 5, 6, 7, 9

시각적으로 보면 한 눈에 알 수 있듯이 1행에서 6, 7을 가질 수 있는 칸은 H와 I뿐이다.
이는 H와 I가 6,7이 아닌 다른 숫자를 가질 수 없음을 의미하며 6,7을 제외한 다른 숫자를 후보 숫자에서 제거할 수 있다. 즉, 아래와 같이 후보 숫자를 추릴 수 있다.
H: 6, 7
I: 6, 7
4.2.2.2. 숨겨진 셋
Hidden Triple
하나의 유닛에서 3개의 후보 숫자가 3개의 칸에만 존재할 때, 나머지 후보 숫자를 그 3개의 칸에서 지울 수 있다.
276593
2
3285
758136294
384
145283
126
38612
6758319
[정답 보기]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>8||<width=34px><:>2||<width=34px><:>7||<width=34px><bgcolor=#EEEEEE,#555555><:>6||<width=34px><bgcolor=#EEEEEE,#555555><:>4||<width=34px><bgcolor=#EEEEEE,#555555><:>5||<width=34px><:>9||<width=34px><:>3||<width=34px><:>1||
695317482
413289567
758136294
932874156
146592873
571923648
389461725
264758319

숨겨진 셋을 설명하기 전에 1번 상자와 5열에 드러난 둘이 존재한다. 복습을 겸해서 한 번 찾아보도록 하자.
[드러난 둘 보기]
1번 상자의 후보 숫자를 모두 나열하면 다음과 같다.
A1: 4, 8
B1: 4, 5, 6, 8, 9
B2: 1, 9
B3: 4, 5, 6, 9
C1: 4, 6, 9
C2: 1, 9
B2와 C2의 후보 숫자가 1, 9만을 가지므로 1번 상자의 다른 칸에서 후보 숫자 1, 9를 제거할 수 있다.

5열의 후보 숫자를 모두 나열하면 다음과 같다.
A5: 1, 4
B5: 1, 4, 7, 9
E5: 7, 9
F5: 7, 9
E5와 F5의 후보 숫자가 7, 9만을 가지므로 5열의 다른 칸에서 후보 숫자 7, 9를 제거할 수 있다.
276593
2
3285
758136294
384
145283
126
38612
6758319
2행의 후보 숫자를 모두 나열하면 다음과 같다.(7, 9가 제거되는 이유는 위의 드러난 둘 때문이다!)
B1: 4, 5, 6, 8
B2: 1, 9
B3: 4, 5, 6
B4: 3, 4, 9
B5: 1, 4
B6: 3, 7, 9
B7: 1, 4, 7
B8: 4, 6, 7, 8
여기서 B1, B3, B8에 집중하면 후보 숫자 5, 6, 8은 이 세 개의 칸에만 나타난다. 이 칸에서 나머지 후보 숫자를 지울 수 있다.

B1: 5, 6, 8
B3: 5, 6
B7: 6, 8

위의 예시에서 알 수 있듯이 드러난 셋과 유사하게 3개의 칸이 후보 숫자 3개를 모두 가질 필요는 없다. 그저 3개의 후보 숫자가 3개의 칸에서만 존재하기만 하면 된다.
4.2.2.3. 숨겨진 넷
Hidden Quad
하나의 유닛에서 4개의 후보 숫자가 4개의 칸에만 존재할 때, 나머지 후보 숫자를 그 4개의 칸에서 지울 수 있다.
앞서 언급되었듯이 난이도가 숨겨진 둘/셋보다 높으며 저들 없이 독자적으로 나타날 확률이 매우 낮기에 다른 방법을 모두 써봐도 안되며 한 유닛의 8개 이상의 모든 칸이 비어있는 특징적인 경우에 잠깐 떠올리는 정도로도 충분하다.
346827
817423659
925786134
2971
6852
4138
592617483
784539216
1634975
[정답 보기]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>3||<width=34px><:>4||<width=34px><:>6||<width=34px><bgcolor=#EEEEEE,#555555><:>9||<width=34px><bgcolor=#EEEEEE,#555555><:>5||<width=34px><bgcolor=#EEEEEE,#555555><:>1||<width=34px><:>8||<width=34px><:>2||<width=34px><:>7||
817423659
925786134
259368741
638174592
471295368
592617483
784539216
163842975

5번 상자가 모두 빈 희귀한 경우이다. 5번 상자의 후보 숫자를 모두 나열하면 아래와 같다.
D4: 3, 8
D5: 5, 6
D6: 4, 5, 8
E4: 1, 3, 9
E5: 7, 9
E6: 1, 4
F4: 2, 9
F5: 5, 6, 7, 9
F6: 2, 5

후보 숫자 1, 3, 4, 8은 D4, D6, E4, E6의 4개의 칸에서만 나타난다. 그러므로 이 칸들에서 다른 후보 숫자들을 제거할 수 있다.
D4: 3, 8
D6: 4, 8
E4: 1, 3
E6: 1, 4

4.2.3. 부분집합 간의 상보적 관계

드러난 부분집합과 숨겨진 부분집합은 상보적이라는 것을 앞서 언급하였다. 많은 이들이 드러난 부분집합보다 숨겨진 부분집합을 찾는 것을 어려워하기에 숨겨진 부분집합의 상보적인 드러난 부분집합을 찾아보는 것도 괜찮은 방법이다.
[드러난 부분집합과 숨겨진 부분집합의 상보적 관계 증명]
먼저, 하나의 유닛에 남아 있는 칸 수와 그 유닛 안에 남은 후보 숫자 가짓수는 같다. 이는 직관적으로 이해해도 충분하며 정확한 증명의 경우 스도쿠/공략법/유일성 논법의 1.2.1. 증명의 보조 정리 1을 보고 오면 된다.

우리는 이제 유닛에 n개의 칸이 비어있을 때, [math(a+b=n)]을 만족하는 드러난 a와 숨겨진 b 둘 중 하나가 존재한다면 다른 하나도 존재함을 보일 것이다.(단, a, b는 자연수)

1. 드러난 a가 존재한다면 숨겨진 b가 존재한다.
유닛의 비어 있는 칸이 n개 이므로 남은 후보 숫자 가짓수도 n개이다.
드러난 a가 존재하므로 a개의 칸에 a개의 후보 숫자만이 들어가야 한다.
이 때, a개의 후보 숫자를 X1, X2, ..., Xa라 하면 a개의 칸에는 이 a개의 후보 숫자를 제외한 [math(n-a=b)]개의 후보 숫자를 가질 수 없다.
즉, [math(n-a=b)]개의 후보 숫자는 [math(n-a=b)]개의 칸에만 들어갈 수 있으므로 숨겨진 b가 존재한다.

2. 숨겨진 b가 존재한다면 드러난 a가 존재한다.
유닛의 비어 있는 칸이 n개 이므로 남은 후보 숫자 가짓수도 n개이다.
숨겨진 b가 존재하므로 b개의 후보 숫자는 b개의 칸에만 들어갈 수 있다.
이 때, b개의 후보 숫자를 Y1, Y2, ..., Yb라 하면 [math(n-b=a)]개의 칸에는 이 b개의 후보 숫자를 가질 수 없다.
즉, [math(n-b=a)]개의 칸에 [math(n-b=a)]개의 후보 숫자만이 들어가므로 드러난 a가 존재한다.

1, 2에 의하여 드러난 부분집합과 숨겨진 부분집합은 상보적이라는 것을 알 수 있다.

예를 들어, 다음의 예제의 6열에 집중해보자.
파일:스도쿠 부분집합 간의 상보적 관계 예제.png
숨겨진 부분집합을 열심히 연습했다면 셀 A6, E6, G6에만 후보 숫자 2, 4, 5가 나타나므로(숨겨진 셋) 셀 E6에서 후보 숫자 1을, 셀 G6에서 후보 숫자 6, 9를 제거할 수 있음을 알 수 있을 것이다.

그러나 6열의 다른 칸에도 집중을 해보면 나머지 셀 B6, C6, D6, F6, J6의 총 5개의 칸이 후보 숫자 1, 6, 7, 8, 9의 5개만을 가지므로 드러난 다섯을 발견할 수 있으며 마찬가지로 셀 E6에서 후보 숫자 1을, 셀 G6에서 후보 숫자 6, 9를 제거할 수 있다.

지금 같은 경우는 8개의 칸이 비어있기에 숨겨진 셋과 드러난 다섯이 상보적이여서 드러난 다섯을 찾기가 더 힘들 것이다.
그러나 6개의 칸이 비어있는 경우라면 숨겨진 둘과 드러난 넷, 또는 숨겨진 셋과 드러난 셋이 존재할 수 있으며 대부분의 경우 숨겨진 부분집합보다 드러난 부분집합을 더욱 쉽게 찾기에 이를 이용한다면 부분집합들을 금방 찾을 수 있을 것이다.[9]

4.3. 물고기(피쉬)

Fish, Seafood, Sealife.
하나의 후보 숫자에 대하여 행과 열을 비교하여 그 후보 숫자를 지우는 방법을 통칭하여 물고기 또는 피쉬라고 한다.

어떤 n개의 행(또는 열)에 특정 후보 숫자가 들어갈 수 있는 칸의 개수가 n개 이하이며 그런 칸들이 바라보는 열(또는 행)들의 개수가 n개 일 때 그 열(또는 행)의 나머지 모든 칸에서 후보 숫자를 제거할 수 있다. [10]
글로만 본다면 이해하기 어려울 수 있으나 아래 예시를 본다면 원리 자체는 쉬우므로 X-윙 문단을 먼저 보고 오는 것도 괜찮다.
[기본 물고기의 증명]
----
논의의 편의성을 위해 어떤 n개의 행에 특정 후보 숫자가 들어갈 수 있는 칸의 개수가 n개 이하이며 그런 칸들이 바라보는 열들의 개수가 n개라고 가정하자. 그 반대의 경우 역시 동일하게 증명이 가능하다.

n개의 행을, 특정 후보 숫자가 들어갈 수 있는 칸의 개수가 적은대로 R1, R2, ..., Rn이라 이름 붙이자.
R1에서 임의의 칸 C1에 후보 숫자가 들어간다고 가정하면 (하나의 유닛에 1~9까지의 숫자가 한 번씩만 들어간다는 규칙에 따라) R2~Rn에서 특정 후보 숫자가 들어갈 수 있는 칸이 바라보는 열의 수는 n-1이 되며 여기에는 C1의 열이 배제된다.
마찬가지로 R2에서 C1이 바라보는 열에 포함된 칸을 제외한 임의의 칸 C2에 후보 숫자가 들어간다고 가정하면 L3~Ln에서 특정 후보 숫자가 들어갈 수 있는 칸이 바라보는 열의 수는 n-2가 되며 여기에는 C1, C2의 열이 배제된다.
그러므로, 이와 같은 과정을 반복하면 처음 특정 후보 숫자가 들어갈 수 있었던 칸이 바라보는 n개의 열에 빠짐없이 후보 숫자가 들어가며 들어가는 칸은 주어진 행에 국한된다는 것을 알 수 있다.
따라서, 어떤 n개의 행에 특정 후보 숫자가 들어갈 수 있는 칸의 개수가 n개 이하이며 그런 칸들이 바라보는 열들의 개수가 n개이면 그 열의 나머지 모든 칸에서 후보 숫자를 제거할 수 있다.

기법의 이름은 모두 물고기의 이름에서 따왔다. 예외적으로 X-윙은 n이 2인 물고기의 일종으로 볼 수 있으므로 여기에 서술한다.
문단 제목은 Fish를 한국어로 번역한 물고기로 썼지만, 실제로는 음차한 '피쉬'가 훨씬 자주 쓰인다. 황새치와 해파리도 각각 '스워드피쉬(소드피쉬)'와 '젤리피쉬'가 더 자주 쓰인다. 이 문서에서는 물고기와 피쉬가 혼용되고 있으니 유의.

물고기는 잠긴 집합[11]과 상보적이다. 물고기 모양을 보는 것이 어렵다면 이를 참고해 보는 것이 좋다. 이는 아래 문단에 서술되어 있으니 필요할 때 잠깐 보자.

혹시 물고기가 여러 번 변형된 후 도대체 물고기가 무엇인지 헷갈리기 시작한다면 아래쪽의 '피쉬 변형' 문단에 엄밀한 정의가 서술되어 있다. 고급 사용자들을 위한 것이니 처음 물고기를 접하는 사람은 굳이 이해할 필요가 없다.

4.3.1. X-윙

X-Wing
두 행(또는 열)에서 각 행마다 특정 숫자가 들어갈 수 있는 칸 개수가 2개이며 총 4개의 칸이 바라보는 열 역시 2개 일 때 사용할 수 있는 방법. 말로만 들으면 역시 어려워보이지만 아래 예제와 함께 X 모양을 기억한다면 쉽게 발견할 수 있을 것이다.
713
2457
38
52
135
14
97
62458
132
[ 정답 보기 ]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>7||<width=34px><:>5||<width=34px><:>1||<width=34px><bgcolor=#EEEEEE,#555555><:>3||<width=34px><bgcolor=#EEEEEE,#555555><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>6||<width=34px><:>4||<width=34px><:>8||<width=34px><:>9||
248915763
369487125
584762931
913854276
627139584
432598617
196273458
875641392

이 스도쿠를 숨겨진 하나(Hidden Single)만으로 풀어보면 다음과 같이 45칸이 남는다. 그 다음, 4가 후보 숫자로 들어 있거나 4가 들어 있는 칸을 모두 표시해보자.
7132
24157
38
5AB2
135
2154
32597
1962458
CD1392
3열에서 4가 들어갈 수 있는 자리는 A와 C뿐이며, 5열에서는 B와 D뿐이다.
따라서 A에 4가 들어가면 B에 4가 안 들어가므로 D에 4가 들어가며, C에 4가 들어가면 B에 4가 들어간다.
즉, A와 D에 4가 들어가든지 B와 C에 4가 들어가야 한다.

이제 4행과 9행의 다른 칸을 보자.
7132
24157
38
5AB2
135
2154
32597
1962458
CD1392
붉은색으로 표시한 칸에 4가 들어간다면 위에서 볼드체로 표시한 문장을 만족할 수가 없다. 따라서 A, B, C, D를 제외한 4행, 9행의 모든 칸에서 후보 숫자 4를 제거할 수 있다.

A, B, C, D가 X자의 형태로 서로 교차하는 듯한 형태를 띄고 있기에 이름과 함께 외우기 편하다. 다만, 이름의 유래는 아래 XY-윙에서 알 수 있듯이 숫자 하나(X)를 사용하는 윙이기 때문이다.

4.3.2. 황새치(스워드피쉬)

Swordfish
이하로 언급될 스워드피쉬, 젤리피쉬는 위에 언급했던 기본적인 X-윙에서 범위가 더 넓어져 세 개의 행이나 열에서 후보 숫자들을 비교하게 된다.
38
453
29
63742
3
95627
78
8235
16
[ 정답 보기 ]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>7||<width=34px><:>9||<width=34px><:>3||<width=34px><bgcolor=#EEEEEE,#555555><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>4||<width=34px><bgcolor=#EEEEEE,#555555><:>6||<width=34px><:>8||<width=34px><:>1||<width=34px><:>5||
645381297
281579436
168937542
327154689
954628173
432715968
879462351
516893724

이 스도쿠를 기초 기법만으로 풀어보면 다음과 같이 34칸이 남는다. 그 다음, 후보 숫자 6이 들어갈 수 있는 칸을 모두 노란색으로 표시해보자.
9328
4538
28193
1683742
3278
954628173
3278
879235
1683
3행, 5행, 8행에서 숫자 6이 들어갈 수 있는 열은 5열, 7열, 9열뿐이다.
9328
4538
28193
1683742
3278
954628173
3278
879235
1683
3행, 5행, 8행에는 숫자 6이 정확히 세 개 들어가야 하고, 각각의 숫자 6은 서로 다른 열에 있어야 하므로, 5열, 7열, 9열에 정확히 한 개씩 들어가야 한다. 즉, 5열, 7열, 9열에서는 3행, 5행, 8행이 아니면 후보 숫자 6을 가질 수 없다.
9328
4538
28193
1683742
3278
954628173
3278
879235
1683
따라서 빨간색 칸들에서 후보 숫자 6을 제거할 수 있다.

4.3.3. 해파리(젤리피쉬)

Jellyfish
젤리피쉬는 4개의 가로줄과 세로줄에서 후보숫자들을 비교한다.

여기서부터는 상당히 복잡해져서 찾지 못하는 경우도 자주 나오며 초급 기술 사용자는 건너뛰어도 무방하다.
1487936
96384
839642
84936
36849
493628
854369
638942
49683
[정답 보기]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>2||<width=34px><:>1||<width=34px><:>4||<width=34px><bgcolor=#EEEEEE,#555555><:>8||<width=34px><bgcolor=#EEEEEE,#555555><:>5||<width=34px><bgcolor=#EEEEEE,#555555><:>7||<width=34px><:>9||<width=34px><:>3||<width=34px><:>6||
956231874
837964215
782495361
361728549
549316728
128543697
673189452
495672183

후보 숫자 5에 집중하여 보자.
1487936
96384
839642
84936
36849
493628
854369
638942
49683
5를 후보 숫자로 갖는 칸을 모두 노란 색으로 칠하면 위와 같다. 이제 1, 5, 6, 9행을 자세히 보자.
1487936
96384
839642
84936
36849
493628
854369
638942
49683
각 행에서 파란 칸은 4개 이하이며 파란 칸이 바라보는 열은 1, 3, 5, 7열로 4개이다.
1487936
96384
839642
84936
36849
493628
854369
638942
49683
따라서 1, 3, 5, 7열인 4개의 열의 다른 모든 칸에서 후보 숫자를 제거할 수 있다.

실제 푸는 상황에서는 위 문제처럼 일부가 빠져 있어 생각해내기 까다로울 뿐더러 지우는 후보 수가 적어 보인다. 그럼에도 여러 열의 후보 숫자를 지울 수 있는 강력한 기술임으로 익혀둔다면 도움이 될 것이다.[12]

4.3.4. 물고기와 부분집합의 상보적 관계

물고기와 부분집합은 상호 보완적인 관계이다. 물고기를 찾는 문제는 부분집합을 찾는 문제로, 부분집합을 찾는 문제는 물고기를 찾는 문제로 변형될 수 있다.
9328
4538
28193
1683742
3278
954628173
3278
879235
1683
윗 문단의 황새치를 그대로 가지고 왔다.
행을 기준으로 찾는 방법을 보여줄 것이며 열은 그 반대로 하면 된다.

후보 숫자 6이 들어갈 수 있는 곳이 예쁘게 칠해져 있다.
이를 각 행당 후보 숫자가 나타나는 열을 원소로 하는 집합을 만들면 다음과 같다.
1: {1, 5, 6, 8, 9}, 2: {1, 6, 7, 8, 9}, 3: {5, 7, 9}, 4: {}, 5: {7, 9}, 6: {}, 7: {5, 6, 7, 8}, 8: {5, 9}, 9: {}

여기서 우리는 3행, 5행, 8행의 원소에 드러난 셋(후보 숫자 5, 7, 9)을 발견할 수 있다.
그러면 드러난 셋을 적용시키는 것처럼 이 세 행을 제외한 다른 행의 원소에 5, 7, 9를 제거할 수 있다.
1: {1, 6, 8}, 2: {1, 6, 8}, 3: {5, 7, 9}, 4: {}, 5: {7, 9}, 6: {}, 7: {6, 7, 8}, 8: {5, 9}, 9: {}

황새치를 이용한 것과 같은 결과를 얻을 수 있는 것을 볼 수 있다!

만약 드러난 둘이면 X-윙, 넷이면 해파리 등이 적용된다.
ABCDEFGHI
9467
76841
39718
7831
513872
75261
54328
7
숨겨진 둘의 예제를 그대로 가지고 왔다.
1행에 집중했을 때 후보 숫자도 그대로 가지고 왔다.

A: 1, 2, 5, 8
B: 1, 2, 3, 8
C: 2, 3
D: 1, 2, 9
E: 1, 2, 3, 5, 9
F: 5, 9
G: 4, 5, 8, 9
H: 2, 3, 4, 5, 6, 7, 9
I: 3, 4, 5, 6, 7, 9

칸과 후보 숫자를 각각 Y축, X축으로 하겠다. 반대로 해도 상관이 없다.
123456789
A
B
C
D
E
F
G
H
I
노란색으로 칠해진 칸에 무엇인가 바로 보일 것이다. 이제 X-윙을 적용하여 후보 숫자를 지우면 숨겨진 둘을 적용시킨 것과 같은 결과를 얻을 수 있다는 것을 알 수 있을 것이다.

이 전에 드러난 부분집합과 숨겨진 부분집합이 상보적임을 보인 적이 있다. 그러므로 기본 물고기는 부분집합과 상보적이다.

4.4. 유일성 논법

Uniqueness

초급에 있긴 하지만, 이 공략은 초급부터 고급까지 두루두루 쓰이는 공략이다. 유일성 논법 참고.

단, 이 스도쿠의 해가 유일하다는 가정을 하기 싫거나 할 수 없는 상황이라면 건너뛰자.

5. 중급

여기서부터는 문제를 풀다가 막힐 때 후보 숫자를 돌파구로 사용하는 것이 아니라, 일단 후보 숫자부터 적고 시작해야 한다.
대부분의 인쇄물의 경우 초급 기법만으로 풀리는 경우가 많으며 어렵다 하더라도 중급 기법만 잘 적용하면 거의 모든 문제를 풀 수 있다. 앱의 경우 상향평준화가 많이 되었지만 그럼에도 중급 기법을 사용하면 대부분 풀 수 있을 것이다.

5.1.

Wing
어떠한 셀(피봇 셀)로부터 이름의 유래와 같이 날개(Wing)처럼 이어진 셀(윙 셀)들이 존재하여 이 셀들의 관계에 의하여 특정 셀의 특정 후보 숫자를 제거할 수 있다.

5.1.1. XY-윙

XY-Wing, Y-Wing
두 개의 연결을 가진 XY-사슬의 일종으로 볼 수 있다. 하나의 후보 숫자(X)를 사용하는 X-윙과 달리 두 개의 후보 숫자(X, Y)를 이용하기에 XY-윙이며 XYZ, WXYZ 모두 후보 숫자가 하나씩 늘어난 것이다.
어려운 스도쿠에 사용될 수 있는 방법이며 발견하기도 쉽고 꽤나 자주 쓰인다. 일단 아래의 형태를 보자.
BC
.
A
A의 후보 숫자는 1, 2
B의 후보 숫자는 2, 3
C의 후보 숫자는 1, 3이라고 생각해보자.
그러면 B에는 2나 3 중에는 무조건 하나가 들어가야 한다. 각각의 경우를 상정하면 아래와 같다.
2C
.
1
31
.
A
이때 A에 1 말고 2가 들어가야 할지, C에 1 대신 3이 들어가야 할지는 알 수 없지만 둘 중 하나에는 무조건 1이 들어가야 한다는 사실을 알 수 있다. 왜냐하면 A와 C에 둘 다 1이 아닌 2, 3이 들어가면 B에 들어갈 수가 없어지기 때문이다.
BC
.
A

그래서 A와 C를 동시에 바라보는 영역에서 후보숫자 1을 제거할 수 있다. 이것을 XY윙이라 한다.

XY윙이 성립하려면 XY, XZ, YZ의 관계가 성립되는 세 개의 칸이 필요한데, 이때 XY칸(피봇 셀, 위 예에서는 B칸)은 XZ, YZ칸(윙 셀, 위 예에서는 A, C칸)을 바라보면서 XZ칸과 YZ칸은 서로를 바라보지 않아야 한다.[13]
B
C
A

따라서 위와 같은 형태는 XY윙이 성립되지 않는다.
18
7368
967
537
417
892
561
743
9
[ 정답 보기 ]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>5||<width=34px><:>1||<width=34px><:>4||<width=34px><bgcolor=#EEEEEE,#555555><:>9||<width=34px><bgcolor=#EEEEEE,#555555><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>8||<width=34px><:>7||<width=34px><:>3||<width=34px><:>6||
732564819
986173245
253497168
498216357
671835924
849352671
127649583
365781492

숨겨진 하나(Hidden Single)를 반복하면 다음과 같이 35개의 칸이 남는다.
5149286
732689
9867
253978
4981A7
6718392B
9561
749C3
589D
각 칸의 후보 숫자는 다음과 같다.
A : 3, 5
B : 4, 5
C : 2, 5
D : 2, 4
이 경우, D가 피봇 셀, B와 C가 윙 셀이 됨을 확인할 수 있다. 따라서 B와 C가 동시에 바라보는 영역 A에서 후보 숫자 5를 제거할 수 있다.

5.1.2. XYZ-윙

XYZ-Wing
XY윙의 확장으로, 이번 후보숫자는 XY-YZ-ZX의 관계가 아닌 XYZ-XY-YZ의 관계를 갖는다. 성립되는 조건은 XYZ후보숫자를 갖는 칸이 XY윙의 조건 중 '같은 상자에 있는 두 칸'에 속해야 한다는 것.
13B456
2
A39
4
5
6C7123

B의 후보숫자는 7, 8, 9이고 A는 7, 8, C는 8, 9이다. B에 7이 들어가면 A에는 8이 들어가고 B에 9가 들어가면 C에 8이 들어가야 한다.
13B456
2
A39
4
5
6C7123

따라서 B가 7이건 8이건 9이건 상관없이 ○의 자리에는 8이 들어갈 수 없다. 쉽게말해 A, B, C가 모두 바라보는 칸에 있는 후보숫자 XYZ 중 겹치는 Y를 제거할 수 있다.

XYZ윙의 조건은 기본적으로 XY윙과 동일하고 XYZ를 후보숫자로 갖는 칸은 무조건 XY나 YZ를 후보숫자로 갖는 칸 중 하나와 같은 상자 안에 있어야 하고 둘 모두를 바라보아야 한다. 따라서 위의 형태에서 A나 C의 후보숫자가 7, 8, 9라면 XY윙이 성립되지 않는다.

5.1.3. WXYZ-윙

WXYZ-Wing
XYZ-윙의 확장으로 앞에서 언급했듯이 후보 숫자 4개를 사용하기에 WXYZ-윙으로 불린다. 따라서 아래 W-윙과는 관련이 없다.
후보 숫자 5개 이상을 사용하는 윙도 얼마든지 만들 수 있으나 WXYZ-윙도 사용빈도가 떨어지기 때문에 따로 언급하지는 않는다.
WZ
WXYZXZYZ
.
XYZ-윙을 이해했다면 바로 알 수 있을 것이다.
WXYZ가 후보 숫자로 Z를 가진다면 빨간 칸은 후보 숫자로 Z를 갖지 못하고
WXYZ가 후보 숫자로 Z를 가지지 않는(X, Y, Z이면)다해도 빨간 칸은 후보 숫자로 Z를 갖지 못한다.

위의 경우 조금만 더 생각하면 알 수 있겠지만 XZ와 YZ가 상자 안에 존재하며 WZ가 상자 밖에 존재하는 경우에도 적용할 수 있다.
또한, WXYZ-WZ-XZ-YZ의 형태뿐만 아니라 WXYZ-WZ-XYZ-XYZ도 상관 없다는 것을 깨달을 것이다.
여기서 조금 더 생각하면 WXYZ에서 Z가 빠진 WXY-WZ-XZ-YZ 역시 성립함을 알 수 있지만 이와 같은 변형과 확장은 아래 고급의 '거의 잠긴 집합'을 참고하자.

5.2. 연결

Link
연결이란 눈으로 가정법 쓸 때 했던 "여기 이게 들어가면 이게 안 들어가고 그러면 이게 들어가고..."를 공식화한 것이다.

한 유닛 위에 특정 후보 숫자가 들어갈 수 있는 칸이 단 개만 존재한다면 두 칸의 관계를 특정 후보 숫자에 대한 강한 연결(Strong link)이라 하며 두 칸은 강하게 연결되어 있다, 또는 강하게 이어져 있다고 한다.
1
2
3
4
5
6
5
2
7
후보 숫자 8, 9는 5열에서 들어갈 수 있는 칸이 노란색 칸로 두 개만 존재한다. 즉, 노란색 두 칸은 후보 숫자 8에 대하여 강한 연결을 가지며 후보 숫자 9에 대해서도 강한 연결을 가진다. 예시에서는 특정 열에서의 연결 관계를 보여주지만 당연히 행이나 상자에서의 강한 연결도 존재한다.

위의 예시를 보면 잘 알겠지만 강한 연결은 다음의 특징을 가진다.
1. 특정 칸에 해당 후보 숫자가 들어간다면, 다른 칸에는 이 후보 숫자가 들어가지 않아야 한다.(약한 연결도 만족)
2. 특정 칸에 해당 후보 숫자가 들어가지 않는다면, 다른 칸에는 이 후보 숫자가 들어가야 한다.

한 유닛 위에 특정 후보 숫자가 들어갈 수 있는 칸이 두 개 이상 존재한다면 두 칸의 관계를 특정 후보 숫자에 대한 약한 연결(Weak link)이라하며 두 칸은 약하게 연결되어 있다, 또는 약하게 이어져있다고 한다.
16
35
42
노란색 칸들은 서로 후보 숫자 7, 8, 9에 대한 약한 연결을 가진다.

이해를 위해 만약 셀 A1이 모종의 이유로 후보 숫자 7을 가지지 못한다 가정하자. 그러면 셀 B3와 C2는 후보 숫자 7에 대하여 강한 연결을, 나머지 노란 칸들은 후보 숫자 8, 9에 대하여 약한 연결을 가진다고 말할 수 있다.

약한 연결은 당연하게도 특정 칸에 해당 후보 숫자가 들어간다면, 다른 칸에는 이 후보 숫자가 들어가지 않아야 한다.
즉, 강한 연결이면 약한 연결을 만족하지만 그 역은 성립하지 않는다.[14]

사슬(Chain)은 이러한 연결의 연속된 모임이다.

5.2.1. 심플 컬러링

Simple Coloring, Single's Chains, Skyscraper
연결을 사용하는 기법들 중 가장 간단한 기법.
하나의 후보 숫자만을 고려하며 강한 연결들로 이루어져 있을 때 사용할 수 있다.
하나의 후보 숫자만을 고려하며 약한 연결이 있을 경우 X-사슬을 사용할 수 있다.

두 개의 강한 연결이 공통 칸을 공유한다면, 공통 칸을 가운데 두고 세 개의 칸 사슬을 형성할 수 있다.
사슬의 한쪽 끝에 있는 칸에 특정 후보 숫자 X가 들어갈 수 없다고 가정할 경우, 강한 연결의 정의 때문에 다음 사슬의 칸에는 후보 숫자 X가 들어가야만 한다. 이것은 차례로, 후보 숫자 X는 사슬의 세 번째 칸에 들어갈 수 없다.
반대로, 사슬의 한쪽 끝에 있는 칸에 후보 숫자 X가 들어간다고 가정한다면, 후보 숫자 X는 중간 칸에 들어갈 수 없고 후보 숫자 X는 사슬의 세번째 칸에 들어가야만 한다.

강한 연결들만으로 구성된 더 긴 사슬[15]을 고려한다면, 후보 숫자는 연속적으로 번갈아가면서 나올 것이다.

아래의 3D 메두사와 달리 후보 숫자 하나(Simple)만을 고려하며 후보 숫자가 번갈아 나와 아래의 예시처럼 두 색깔(Coloring)로 분석할 수 있기에 심플 컬러링(Simple Coloring)이라는 이름을 가진다.

먼저 다음의 스도쿠를 기초 기법만으로 풀어보자.
285
397
63
47
8567
253
4
895
3698
[ 정답 보기 ]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>9||<width=34px><:>7||<width=34px><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>6||<width=34px><bgcolor=#EEEEEE,#555555><:>8||<width=34px><bgcolor=#EEEEEE,#555555><:>4||<width=34px><:>5||<width=34px><:>3||<width=34px><:>1||
831925746
654173892
396847125
485291673
127536489
719358264
268419357
543762918

그러면 다음과 같이 빈칸이 33개 남는다.
268453
83976
6532
368475
4859673
2536
3864
6849357
43698
여기서 후보 숫자 9가 들어갈 수 있는 칸을 모두 표시해보면 다음과 같다. 편의상 숫자 9가 들어 있는 칸도 표시했다.
268453
83976
6532
368475
4859673
2536
3864
6849357
43698
먼저 셀 C3를 초록색으로 표시한다.
3행에 후보 숫자 9가 들어 있는 칸이 C3, C8 등 두 개뿐이므로, 셀 C8은 파란색으로 표시한다.
3번 상자에 후보 숫자 9가 들어 있는 칸이 A9, C8 등 두 개뿐이므로, 셀 A9는 초록색으로 표시한다.
9열에 후보 숫자 9가 들어 있는 칸이 A9, F9 등 두 개뿐이므로, 셀 F9는 파란색으로 표시한다.
268453
83976
6532
368475
4859673
2536
3864
6849357
43698
강한 연결의 특성에 의해, 어떠한 유닛에서도 초록색 칸과 파란색 칸 중 하나는 9가 들어가고 다른 하나는 9가 안 들어간다. 이를 잘 확장하면 다음과 같은 결론을 얻을 수 있다.

모든 초록색 칸에 9가 들어가거나, 모든 파란색 칸에 9가 들어간다.

이제 셀 F3를 보자. 셀 F3는 초록색 셀 C3와 파란색 셀 F9를 동시에 바라보고 있다. C3과 F9 중 하나는 무조건 9가 들어가므로, F3에는 9가 들어갈 수 없다.
268453
83976
6532
368475
4859673
2536
3864
6849357
43698

참고로, 위 예제는 연결이 3개이며 연결이 하나만 있는 심플 컬러링은 일반적인 스도쿠에서는 등장하지 않는다. 스도쿠 문서에서 볼 수 있는 Extra Regions(남아있는 영역이 따로 존재하는 스도쿠. 스도쿠 X와 창문 스도쿠도 포함이다.)나 서브그리드의 모양이 정사각형이 아닌 스도쿠에서만 등장한다.

5.2.2. X-사슬

X-Chain
문서가 너무 길어 분리되었다. X-사슬(X-Chain), X-순환(X-Cycle), 그룹 X-순환(Grouped X-Cycle) 모두 포함된다.

앞서 후보 숫자 1개에 집중하여 강하게 연결된 심플 컬러링(Simple Coloring)을 알아보았다.
X-사슬은 그와 유사하게 하나의 후보 숫자에 집중하되, 약한 연결로 이어저 있을 때도 쓸 수 있는 방법이다.

아래 언급되는 모든 사슬과 순환에 기초가 되는 내용이니 X-사슬만은 반드시 확인하고 넘어가자.

5.2.3. XY-사슬

XY-Chain
앞의 X-사슬과 발상이 유사하지만 하나의 후보 숫자에만 집중했던 X-사슬과는 달리 XY-사슬의 경우 여러 후보 숫자에 집중해야 한다는 차이가 존재한다.
두 개의 후보 숫자만을 가진 칸들강한 연결로 이어진 경우만 다루며 여러 후보 숫자를 다루는 방법으로는 3D 메두사가 존재한다.
693415
18679
3152
7348652
682134
42938
45127
263415
3961524
[정답 보기]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>8||<width=34px><:>6||<width=34px><:>7||<width=34px><bgcolor=#EEEEEE,#555555><:>9||<width=34px><bgcolor=#EEEEEE,#555555><:>3||<width=34px><bgcolor=#EEEEEE,#555555><:>4||<width=34px><:>1||<width=34px><:>5||<width=34px><:>2||
215867493
934152678
173486529
689521734
542793861
451279386
726348915
398615247

후보 수를 적절히 적으면 아래 사진과 같다.[16]
파일:스도쿠 XY-사슬 예제.png
C7에서 시작한다.
만약 C7에 후보 숫자 6이 들어가지 않는다면(4가 들어가고) C3에 후보 숫자 4가 들어가지 않고(9가 들어가고) E3에 9가 들어가지 않고(5가 들어가고) F1에 5가 들어가지 않고(1이 들어가고) F9에 1이 들어가지 않고 6이 들어간다.
따라서 후보 숫자 6은 C7이나 F9 적어도 하나에 반드시 존재하므로 이 두 칸이 동시에 바라보는 C9은 후보 숫자 6을 가질 수 없다.

위 예시에서는 연결이 4개인 XY-사슬을 보여주고 있지만 처음 이 방법을 접한다면 연결 수가 더 적은 방법부터 시도하는 것이 좋다.
또한, 아래의 방법을 따르면 모양 찾는데 수월할 것이다.
1. 두 개의 후보 숫자(X, Y1)만를 포함하는 시작점 C1과 기준이 되는 후보 숫자(X)를 정한다.
2. C1과 Y1에 대하여 강한 연결 로 이어진 두 개의 후보 숫자(Y1, Y2)만을 포함하는 셀 C2를 정한다.[17]
3. C2과 Y2에 대하여 강한 연결 로 이어진 두 개의 후보 숫자(Y2, Y3)만을 포함하는 셀 C3를 정한다.
4. 이를 반복한 후 C(n-1)과 Y(n-1)에 대하여 강한 연결 로 이어진 두 개의 후보 숫자(Y(n-1), Yn=X)만을 포함하는 셀 Cn를 정한다.[18]
5. C1과 Cn이 공통으로 바라보는 칸에서 후보 숫자 X를 제거한다.
5.2.3.1. W-윙
W-Wing
동일한 후보 숫자를 가지는 칸을 통해서 후보 숫자를 제거하는 방법, XY-사슬의 특수한 경우이며 XY-사슬을 처음 접할 때 적용하기 쉽게 해준다.
2
6387
1962
15349
432791856
954172
41975
35724
96
[ 정답 보기 ]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>8||<width=34px><:>2||<width=34px><:>7||<width=34px><bgcolor=#EEEEEE,#555555><:>4||<width=34px><bgcolor=#EEEEEE,#555555><:>1||<width=34px><bgcolor=#EEEEEE,#555555><:>6||<width=34px><:>5||<width=34px><:>9||<width=34px><:>3||
693285417
154973628
716528349
432791856
985634172
241869735
369157284
578342961

가능한 모든 후보 숫자를 표기하면 다음과 같다.
파일:스도쿠 W-윙 예제.jpg

우리가 주목할 칸은 D1과 J3로 후보 숫자가 7, 8로 같은 두 칸이다. W-윙은 이 두 칸을 후보 숫자가 두 개인 칸들을 이용하여 어떻게든 연결시키면 된다.

만약 D1에 후보 숫자 7이 들어가지 않는다고 가정하자. 자연스럽게 D1은 8이 들어가야 하며 약한 연결로 인해 D6는 8이 들어갈 수 없다. 6열을 자세히 보면 강한 연결로 인해 J6는 8이 들어가야함을 알 수 있다. 마지막으로 약한 연결로 인하여 J3 칸에 8이 들어가지 않아 7이 들어가야 함을 알 수 있다.

즉, 7은 D1과 J3에 적어도 하나 존재하여야 한다.[19] 따라서 D1과 J3가 동시에 바라보는 D3, J1에서 후보 숫자 7을 제거할 수 있다.

5.3. 핀드 피쉬

Finned fish
앞서 초급 기법에서 다루었던 X-윙, 스워드피쉬, 젤리피쉬의 경우 n개의 행 또는 열에서 정확히 n개의 열 또는 행에만 특정 후보 숫자가 나타나는 것을 조건으로 했다. 그러나 현실은 후보 숫자가 정확히 n개의 줄에만 나타나는 것이 아니라, 자잘하게 칸 몇 개가 끼어 있는 경우가 많다. 핀드 피쉬는 끼어 있는 칸이 충분히 적을 때, 후보 숫자를 조금 제거할 수 있는 방법이다.
해당 모양을 이루고 있는 (불완전한) 후보수들을 피쉬, 남아있는 후보수를 이라고 한다.

사시미 피쉬(Sashimi Fish)의 경우 핀드 피쉬의 일반화된 방법으로 칸이 더해지는 것이 아닌 빠진 것에도 적용할 수 있다. 다만 틀에서 완전히 벗어난 만큼 사시미 X-윙을 제외하면 잘 보이지도 않는다.

자세한 정의의 경우 아래 고급 문단을 참조하자. 다 읽을 필요는 없고 필요한 것만 읽고 넘기면 된다.

예를 들어, 핀드 스워드피쉬를 판단하는 방법은 다음과 같다.
1. 임의로 3개의 행을 고른다.
2. 3개 행에서 특정 후보 숫자를 가지는 대부분의 칸이 3개의 열에 들어갈 수 있는지 확인한다.
3. 3개 열에 들어가지 못한 칸(이라 한다.)이 하나의 상자 안에 있는지 확인한다. 이때 2번에서 고른 3개의 열 중에서 적어도 하나는 이 상자를 지나야 한다.
4. 3번에서 고른 상자에서 3개의 행 위에 있지 않고 3개의 열 위에 있는 칸은 2번에서 고른 후보 숫자를 가질 수 없다.

5.3.1. 핀드 X-윙

Finned X-Wing
5
8
9
34555
78951
56
1247553
4
6
4행과 5행, 7행의 후보수 5를 적으면 위와 같다.

4행과 7행에서 X-윙이 나타나는 것처럼 보이지만 셀 D9에 후보 숫자가 하나 더 있다.
1. D9에 5가 들어간다면 7열에는 5가 들어갈 수 없다.
2. D9에 5가 들어가지 않으면 일반적인 X윙이 나타나며 7열에는 5가 들어갈 수 없다.

X-윙과 D9가 영향력을 공유하는 칸(E7)의 후보 숫자는 5가 될 수 없다.
5.3.1.1. 사시미 X-윙
Sashimi X-Wing
5
8
9
34595
78951
56
1247553
4
6

바로 위의 핀드 X-윙에서 하나의 5를 9로 바꿨을 뿐이지만 이제는 X-윙이 불완전하다. 하지만 이 경우도 D9에 5가 들어가지 않는다면 D6, G7에 5가 들어가야만 하기 때문에 핀드 X-윙과 동일한 효과를 지닌다. 즉, 이 경우도 E7의 후보 숫자를 지울 수 있다.

5.3.2. 핀드 스워드피쉬

Finned Swordfish
스워드피쉬에 핀을 결합한 기법.

다음 예제를 보자.
847
58
472
6352
25
8276
173
93
581
[ 정답 보기 ]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>9||<width=34px><:>8||<width=34px><:>2||<width=34px><bgcolor=#EEEEEE,#555555><:>1||<width=34px><bgcolor=#EEEEEE,#555555><:>4||<width=34px><bgcolor=#EEEEEE,#555555><:>3||<width=34px><:>5||<width=34px><:>7||<width=34px><:>6||
137625894
546798123
463571982
271869345
895432761
618257439
729314658
354986217

기초 기법만으로 풀어보면 다음과 같이 36개의 칸이 남는다. 설명을 위해 후보 숫자 4가 들어갈 수 있는 칸을 모두 표시했다.
8247
37258
4782
635782
2785
895276
18573
729358
35817
1열, 8열, 9열을 보자. 이 열에서 후보 숫자 4는 2행과 7행에 두 개, 4행, 5행, 6행에 각각 1개씩 들어 있다. 이때 6번 상자를 제외하면, 2행, 4행, 7행만으로 모든 칸을 커버할 수 있다.
8247
37258
4782
635782
2785
895276
18573
729358
35817
핀 셀(초록색) E8, F9 중 하나라도 참일 경우, 6번 상자에 있는 셀 D7(빨간색)에서 후보 숫자 4를 제거할 수 있다. 핀 셀이 모두 거짓일 경우, 스워드피쉬(파란색)에 따라 2행, 4행, 7행에 있는 셀 D6, D7, G4, G7에서 후보 숫자 4를 제거할 수 있다. 따라서 어떠한 경우라도 셀 D7에서 후보 숫자 4를 제거할 수 있다.

핀 셀이 거짓일 경우 셀 B8이 자동으로 참이 되므로, 드러나지 않은 피쉬는 불완전하다. 즉, 이는 사시미 스워드피쉬이다.

5.3.3. 핀드 젤리피쉬

Finned Jellyfish
젤리피쉬에 핀을 결합한 기법. 발견하기 상당히 어렵지만 발견했다고 해도 지울 수 있는 후보 숫자가 몇 개 없다.
921
615
86
493
5
782
64
976
1527
[ 정답 보기 ]
||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>3||<width=34px><:>5||<width=34px><:>9||<width=34px><bgcolor=#EEEEEE,#555555><:>4||<width=34px><bgcolor=#EEEEEE,#555555><:>8||<width=34px><bgcolor=#EEEEEE,#555555><:>2||<width=34px><:>1||<width=34px><:>6||<width=34px><:>7||
647931852
281675493
562147938
913856274
478329615
726598341
894713526
135264789

기초 기법을 통해 빈칸을 38개까지 줄인 후, 교대 추론 사슬을 이용하여 셀 A9에서 후보 숫자 3을 지우면[20] 후보 숫자 3이 들어갈 수 있는 칸은 다음과 같다.
이제 1열, 5열, 6열, 8열을 보면, 젤리피쉬가 나타나는 것처럼 보이지만 셀 A5가 추가적으로 붙어 있다. 이때 셀 A5를 핀, 1열, 5열, 6열, 8열의 나머지 칸들을 피쉬라 하고 이들을 각각 초록색과 파란색으로 구분한다.
59216
6715
28165
52493
5
78215
726541
8971526
15267
두 가지 가능성을 생각해보면, 핀 셀이 참일 경우 셀 B4, B5, G5에서 후보 숫자 3을 제거할 수 있으며, 거짓일 경우 젤리피쉬에 따라 1행, 3행, 4행, 6행에 있는 셀 B4, G6, I6에서 후보 숫자 3을 제거할 수 있다. 즉, 핀 셀이 참이든 거짓이든 셀 B4에서 후보 숫자 3을 제거할 수 있다.
59216
6715
28165
52493
5
78215
726541
8971526
15267

5.4. 버그

BUG(Bi-Value Universal Grave)
유일성 논법의 응용으로 남은 모든 칸들이 후보 숫자를 2개씩만 가지면 해답이 없거나 2개임을 이용한다. 자세한 내용은 문서 참조

만약 해답이 유일하다면 XY-사슬로도 풀릴 수 있다고 여겨진다. 그러므로 역시 건너뛰어도 무방하나 모양이 매우 특이하므로 한 번쯤은 보고 가는 것도 나쁘지 않을 것이다.

5.5. 형태 겹침

Pattern Overlay, Templating
하나의 후보 숫자를 배치할 수 있는 모든 형태를 고려했을 때 모두 겹치는 칸은 그 후보 숫자가 넣어야하고 모두 겹치지 않는 칸은 그 후보 숫자를 배제해야 함을 사용하는 기법. 그룹 X-순환이나 피쉬 변형으로 모두 해결될 수 있다.

빈 스도쿠에는 [math(9\times6^2\times4\times3^2\times2^2\times1=46,656)]의 가짓수로 특정 후보 숫자를 배치할 수 있다. 당연히 사람이 이 모든 경우의 수를 고려할 수는 없지만 하나의 후보 숫자가 정해진 경우에는 5,184가지, 둘의 후보 숫자가 정해진 경우는 576나, 864가지로 뚝뚝 떨어지며 부분집합이나 교차로 등을 통해 제거되는 후보 숫자 또한 존재하기에 후보 숫자가 3~4개 정도 정해지면 유용하게 사용될 수도 있다. 다만 이럴 경우 그룹 X-순환이나피쉬 변형이 더 유용하게 적용될 것이다...
3
33
3
333
33
3
3
333
333
후보 숫자로 3을 가질 수 있는 칸을 적절히 표시하였다. 3을 직접 배치해보면 아래 2가지 경우 밖에 없는 것을 알 수 있다.
3
33
3
333
33
3
3
333
333
3
33
3
333
33
3
3
333
333
따라서 둘 모두에 후보 숫자를 가지는 셀 E7, G2, J8은 후보 숫자 3을 가져야만 하며, 두 경우 모두 후보 숫자를 가지지 않는 셀 D8, E4, H3, J2, J6는 후보 숫자를 가지지 않아야 한다.

위 예시의 경우 가능한 가짓수가 2가지로 적어 별도의 필기가 필요없지만 일반적인 경우에 각 경우의 수에 후보 숫자를 가질 수 있는 셀을 a, b, c, ... 따위로 표기하여 모든 알파벳이 나타나면 후보 숫자를 가져야하며, 모든 알파벳이 나타나지 않는 경우 후보 숫자를 가지지 않는 것을 쉽게 파악할 수 있다.

기법을 보면 알겠지만 썩 그리 좋은 취급을 받지는 않으며 최후의 수단으로도 취급된다. 또한, 위 문제의 경우 셀 G2를 숨겨진 하나(Hidden Single)로 확정시키고 사슬이 5개나 7개인 X-순환을 사용하면 풀릴 수 있다.

6. 고급

여기서부터는 해당 공식이 적용되는 경우를 눈으로 발견하기 상당히 어려워질 뿐만 아니라 어렵게 찾아내도 지울 수 있는 후보 숫자가 적다.

또한, 중급까지는 대체적으로 난이도가 단계적으로 상승한다는 느낌을 받을 수 있으나 고급 이후의 기법들은 사람마다 느끼는 난이도가 모두 다르다. 그러므로 특정 기법들의 이해나 적용이 어렵다 느껴지면 다른 기법들을 먼저 살펴보는 것도 나쁘지 않다.

적용은 힘들지라도 중급 이하의 기법들을 모두 이해했다는 가정 하에 설명을 시작한다. 실제 스도쿠를 풀이할 때도 중급 이하의 기법들을 모두 사용한 이후에 고급 기법들을 떠올리는 것이 낫다.

6.1. 거의 잠긴 집합

Almost Locked Set(ALS)
드러난 부분집합(Naked Subsets)에서 한 유닛의 n개의 칸에 n개의 후보 숫자를 가지는 경우 다른 칸의 후보 숫자를 지울 수 있었다.

여기서 한 유닛의 n개의 칸에 n개의 후보 숫자가 들어 있는 경우 그 n개의 칸을 잠긴 집합(Locked Set, LS)이라 한다.[21]
이와 달리 한 유닛의 n개의 칸에 n+1개의 후보 숫자가 들어 있는 경우 그 n개의 칸을 거의 잠긴 집합(Almost Locked Set, ALS)라 한다.

일반적으로 잘 쓰지는 않지만
한 유닛의 n개의 칸에 n+2개의 후보 숫자가 들어 있는 경우 그 n개의 칸을 Almost Almost Locked Set(AALS),
한 유닛의 n개의 칸에 n+3개의 후보 숫자가 들어 있는 경우 그 n개의 칸을 Almost Almost Almost Locked Set(AAALS)라고 말할 수 있다.

n=1일 때도 성립해서 1개의 칸에 2개의 후보 숫자가 들어 있는 경우(Bi-Value) 역시 거의 잠긴 집합(Almost Locked Set)이라 한다.

거의 잠긴 집합은 매우 일반적이고 흔하기에 아래 방법을 사용할 수 있는 모양을 찾는 것은 꽤나 어려울 것이다.

6.1.1. 거의 잠긴 집합-XZ

Almost Locked Set-XZ(ALS-XZ)
XY-윙, XYZ-윙, WXYZ-윙 모두 여기에 속한다.

최소 2개의 거의 잠긴 집합(ALS)이 필요하며 그 거의 잠긴 집합들에서 공통으로 나타나는 후보 숫자(Common candidate) 역시 둘 이상 필요하다. ALS가 둘 이상인 경우는 아래 문단의 거의 잠긴 집합-사슬에서 다룰 것이고 여기에서는 둘인 경우만 언급한다.

거의 잠긴 집합들에서 공통으로 나타나는 후보 숫자들 중
하나의 유닛 위에 존재하여 두 ALS가 동시에 가질 수 없는 후보 숫자를 제한된 공통(Restricted Common)이라 하며 X에 대응된다.
하나의 유닛 위에 존재하지 않아 두 ALS에 동시에 가질 수 있는 후보 숫자를 Z에 대응한다.[22]
두 ALS의 Z를 포함하는 모든 칸들이 동시에 바라보는 칸의 후보 숫자에서 Z를 제거할 수 있다.
만약 그 칸이 Z를 가진다면 Z를 바라보는 모든 거의 잠긴 집합(ALS)는 잠긴 집합(LS)으로 바뀌게 된다. 그러나 우리는 X가 존재하며 그 정의상 ALS가 동시에 가질 수 없다. 이는 모순을 발생시키며 그 칸에서 Z를 제거할 수 있다.

구체적 예시 추가 필요
두 ALS내 X를 포함하는 칸들이 동시에 바라보는 칸의 후보 숫자에서 X를 제거할 수 있다. 논리는 위와 똑같으며 정의상 명칭이 Z에서 X로 바뀌었을 뿐이다.
만약 그 칸이 X1을 가진다면 X1을 바라보는 모든 거의 잠긴 집합(ALS)는 잠긴 집합(LS)으로 바뀌게 된다. 그러나 우리는 X2가 존재하며 그 정의상 ALS가 동시에 가질 수 없다. 이는 모순을 발생시키며 그 칸에서 Z를 제거할 수 있다.

또한, 한 ALS에서 X를 제외한 후보 숫자를 그 ALS가 포함된 유닛의 모든 칸에서 제거할 수 있다. 이 기법을 Doubly linked ALS-XZ라고도 부르나 논리는 사실 동일하다.
만약 그 칸이 ALS에 포함된 후보 숫자를 가진다면 그 ALS는 잠긴 집합(LS)으로 바뀌게 된다. 그러나 우리는 X1, X2가 존재하며 그 정의상 두 ALS가 동시에 가질 수 없다. 이는 다른 ALS에서 모순을 발생시키며 그 칸에서 ALS에 포함된 후보 숫자를 제거할 수 있다.

구체적 예시 추가 필요
6.1.1.1. 거의 잠긴 집합-사슬
Almost Locked Set-Chain(ALS-Chain)
거의 잠긴 집합-XZ는 사실 사슬이 2인 거의 잠긴 집합-사슬(ALS-Chain)이며 사슬이 3인 ALS-Chain을 ALS-XY-Wing이라고도 부른다.

ALS-XY-Wing부터 설명하자면
3개의 ALS 가 존재하며 각각을 P, Q, R이라 하자.

1. P와 Q에 제한된 공통인 X가 존재하며
2. Q와 R에 제한된 공통인 Y가 존재하며
3. R과 P에 제한된 공통이 아닌 공통으로 나타나는 후보 숫자 Z가 존재하면

R과 P에서 Z를 포함하는 모든 칸들이 동시에 바라보는 칸의 후보 숫자에서 Z를 제거할 수 있다.

논리야 ALS-XZ와 동일하니 생략하고 이름은 이러한 ALS가 사슬처럼 연결되어 있기에 거의 잠긴 집합-사슬(Almost Locked Set-Chain, ALS-Chain)이라 부른다.
만약 여기에 '추론'까지 추가하게 되면 아래 문단의 거의 잠긴 집합을 포함한 교대 추론 사슬(Alternating Inference Chains with Almost Locked Sets, AIC with ALS)이 완성된다.

구체적 예시 추가 필요

6.1.2. 부분집합 제거

Subset Exclusion
앞서 언급된 XY-윙, XYZ-윙, WXYZ-윙 모두 여기에 속한다 볼 수 있으나 논리가 약간 다르다.

잠긴 집합의 경우 n개의 칸에 n개의 후보 숫자가 들어 있는 경우로, 우리는 이 집합을 포함한 유닛의 다른 칸에 그 후보 숫자가 하나 이상 있으면 n개의 칸에 n개의 후보 숫자가 들어가지 못함을 이용하여 드러난 부분집합을 사용할 수 있었다.
이와 유사하게 거의 잠긴 집합(ALS)의 경우 n개의 칸에 n+1개의 후보 숫자가 들어 있는 경우로 이 집합을 포함한 유닛의 다른 칸에 그 후보 숫자가 둘 이상 있으면 모순임을 이용한다.
AALS를 포함하는 유닛의 다른 칸에 AALS의 후보 숫자 중 셋 이상을 포함하는 칸이 있는 경우에도 쓸 수 있지만 일반적으로 잘 쓰지도 않고 찾기도 힘들 것이다.
파일:스도쿠 Subset Exclusion 예제1.png
노란 색으로 보이는 두 칸이 우리가 관심 있는 칸들인 기본 쌍(Base Pair)이며 나머지 초록색, 파란색, 보라색 칸들은 모두 거의 잠긴 집합이다.

셀 C2와 C3가 가질 수 있는 모든 후보 숫자의 조합을 나열하면 아래와 같다.
1 & 3 - 초록색 ALS에 의하여 제거된다.
1 & 4 - 파란색 ALS에 의하여 제거된다.
1 & 9
3 & 3 - 한 유닛은 하나의 숫자만 가져야 한다.
3 & 4
3 & 9
8 & 3 - 보라색 ALS에 의하여 제거된다.
8 & 4
8 & 9
즉, 셀 C3이 후보 숫자 3을 가지는 모든 조합은 허용되지 않기 때문에 셀 C3의 후보 숫자에서 3을 지울 수 있다.
이 예제에서 파란색 ALS는 크게 쓸모가 없다. 또한, 이 예제는 WXYZ-윙으로도 풀릴 수 있다. 시도해보자.

이렇게 두 칸의 관계가 정렬되어 있는 경우만 생각했기에 정렬된 짝 제거(Aligned Pair/Triple Exclusion)라고 불리기도 했으나 아래 예시와 같이 꼭 서로 마주 볼 필요가 없다.
5149286
732689
9867
253978
4981A7
6718394B
9561
749C3
589D
윗 문단의 XY-윙의 예제와 후보 숫자를 그대로 가져왔다.
A : 3, 5
B : 4, 5
C : 2, 5
D : 2, 4

XY-윙의 논리와 약간 다르게, 우리는 셀 A, D를 기본 쌍으로 한다.
셀 A, D가 가질 수 있는 모든 후보 숫자의 조합을 나열하면 아래와 같다.
3 & 2
3 & 4
5 & 2 - 셀 C에 의하여 제거된다.
5 & 4 - 셀 B에 의하여 제거된다.
즉, 셀 A의 후보 숫자 5를 가지는 모든 조합은 허용되지 않기 때문에 셀 A의 후보 숫자에서 5를 지울 수 있다.

이렇게 본다면 실제 스도쿠에서 이 기법을 사용하기는 매우 까다로워 보인다. 그러므로 우리는 논리를 반대로 적용하여 제거하고 싶은 후보 숫자와 그를 포함하는 거의 잠긴 집합을 미리 정하고 그 후보 숫자를 제거할 칸을 정할 것이다.
파일:스도쿠 Subset Exclusion 예제2.png
먼저 후보 숫자 6을 선택했다고 하자.
이제 후보 숫자 6을 포함하는 거의 잠긴 집합을 찾자. 칸이 한 개인 이중값이 가장 찾기 쉽기 때문에 빨간색, 초록색, 파란색, 보란색으로 표시하고 그를 포함하는 거의 잠긴 집합을 보시하면 위와 같다.[24]
이제 이 ALS들이 바라보는 칸 중에 6이 포함된 칸을 선택한다. 당연히 저 모든 ALS가 바라보는 칸은 존재하지 않으며 여기서는 셀 D1이다.
셀 D1을 바라보는 ALS 따라서 다음의 조합은 가질 수 없다.
노란색: (1, 6), (3, 6), (4, 6)
파란색: (2, 6)
초록색: (7, 6)

따라서 후보 숫자로 1, 2, 3, 4, 7을 가지면서 위 ALS를 적절히 바라보는 칸을 찾으며 여기서는 A3가 존재한다.
따라서 셀 D1은 후보 숫자 6을 가지지 못한다.

위를 이때까지 논리로 다시 설명하면 다음과 같다.
셀 A3와 D1이 가질 수 있는 모든 후보 숫자의 조합을 나열하면 아래와 같다.
4 & 2
4 & 4 - 가능하다!
4 & 6 - 노란색 ALS
7 & 2
7 & 4
7 & 6 - 초록색 ALS가
따라서 셀 D1이 후보 숫자 6을 가지는 모든 조합은 허용되지 않기 때문에 셀 D1의 후보 숫자에서 6을 지울 수 있다.
6.1.2.1. 죽음의 꽃
Death Blossom

6.1.3. Sue de Coq

6.1.4. Firework

불꽃놀이

6.2. 추론

Inference
이때까지 언급한 연결은 한 후보 숫자에 대하여 두 칸 간의 관계에 대한 이야기이다.
이러한 연결을 확장하여 한 칸 내의 두 후보 숫자 간의 관계에 대해서도 같은 정의를 내릴 수 있다.
5
4831
261
노란색 칸에 들어갈 수 있는 후보 숫자는 7, 9이며 파란색 칸에 들어갈 수 있는 후보 숫자는 1, 7, 9이다.

노란색 칸과 같이 하나의 칸에 특정 후보 숫자가 단 개만 존재한다면 두 후보 숫자에 대한 강한 연결(Strong link)이라 하며 두 후보 숫자는 강하게 연결되어 있다, 또는 강하게 이어져 있다고 한다.
파란색 칸과 같이 하나의 칸에 특정 후보 숫자가 이상 존재한다면 두 후보 숫자에 대한 약한 연결(Weak link)이라 하며 두 후보 숫자는 약하게 연결되어 있다, 또는 약하게 이어져 있다고 한다.

당연하게도 이때까지 다뤄왔던 강한 연결, 약한 연결의 특징을 그대로 가진다.
1. 특정 칸에 해당 후보 숫자가 들어간다면 그 칸에 다른 후보 숫자가 들어갈 수 없다.(강한 연결, 약한 연결)
2. 특정 칸에 해당 후보 숫자가 들어가지 않는다면 칸에 다른 후보 숫자가 들어가 한다.(강한 연결)

역시 강한 연결이면 약한 연결를 만족하지만 그 역은 성립하지 않는다.

이제부터 특별한 설명이 덧붙여지지 않는다면
중급 문단에서 설명한 것을 연결
고급 문단에서 설명한 것을 확장된 연결
둘 모두를 포함하는 것으로 추론(Inference)
이라는 용어를 사용하겠다.

추론(Inference)은 단순히 연결과 확장된 연결을 모두 일컫는 말이기에 그 특징도 당연하게 동일하나 오해의 방지를 위해 간략하게 정리한다.
두 후보 숫자 X, Y에 대하여[25]
X, Y가 강한 추론(Strong Inference)의 관계를 가지면 둘 모두 거짓이 될 수 없다.
X, Y가 약한 추론(Weak Inference)의 관계를 가지면 둘 모두 참이 될 수 없다.

지겹지만 중요하다. 강한 추론은 약한 추론을 만족하지만 그 역은 성립하지 않는다.

6.2.1. 3D 메두사

3D Medusa, Advanced Coloring, Ultracoloring
심플 컬러링에서 언급하였듯이 3D 메두사는 하나의 후보 숫자만을 고려하던 심플 컬러링과 달리 여러 후보 숫자를 고려한다.
강한 추론들로만 이루어진 사슬을 이용[26]하기에 심플 컬러링과 같이 두 색상으로 분석할 수 있다.
여기서 강한 추론는 위의 확장된 연결의 의미를 포함하기에 여러 후보 숫자를 고려할 수 있다.

1. 두 색상 중 하나가 참이라 가정할 경우, 모순이 생김을 이용하여 색상을 선택하는 경우
파일:스도쿠 3D 메두사 예제.png
실제 스도쿠에서 사용한다는 가정 하에 셀 A6의 후보 숫자 6에 대하여 강한 추론을 가지는 것을 모두 빨간 실선으로 표기하였다.
후보 숫자에 대한 차원을 넓히고 이러한 선들이 메두사의 머리와 같다고 하여 3D 메두사와 같은 이름이 붙었다.

강한 추론의 경우 더 설명하지 않아도 잘 알 것이고 심플 컬러링처럼 두 색 중 하나는 참이며 하나는 거짓이다.
이제 셀 A9에 집중하여 보자. 만약 초록색이 참이라 가정하면 셀 A9에 들어갈 수 있는 후보 숫자가 존재하지 않는다. 따라서 모든 초록색으로 칠해진 칸은 그 후보 숫자를 가질 수 없으며 모든 파란색으로 칠해진 칸은 그 후보 숫자를 가져야만 한다.

2. 두 색상 중 적어도 하나가 참이기 때문에, 특정 후보 숫자를 제거하는 경우
파일:스도쿠 3D 메두사 예제2.png
필요 없는 강한 추론은 표기하지 않았으며 두 색상만 나타내었다. 혹시 추론이 이어지는 것을 잘 모르겠다면 XY-사슬에 더 익숙해지고 오자.

꽤나 복잡해 보이지만 이는 이 예제에서 4개의 후보 숫자를 한 번에 지우는 것을 보여주기 위함이고 실제에서는 이보단 덜 복잡할 것이다.

먼저, 셀 C5의 후보 숫자 8 집중해서 보자. 초록색이 참이라 가정하면 당연히 셀 C5에는 8이 들어갈 수 없다. 그러나 파란색이 참이라 가정하더라도 셀 C9의 후보 숫자 8 때문에 셀 C5에는 8이 들어갈 수 없다. 즉, 어느 경우에도 셀 C5는 후보 숫자 8을 가질 수 없으므로 셀 C5의 후보 숫자에서 8을 지울 수 있다.

마찬가지로 셀 C7의 후보 숫자 6[27], 셀 E4의 후보 숫자 6[28], 셀 E5의 후보 숫자 1[29]에도 동일한 논리를 적용할 수 있다.

이 이외에도
한 칸에 같은 색상이 둘 존재한다면 그 색상은 해답이 될 수 없다.(경우 1)
한 칸에 두 색상이 존재한다면 그 칸에서 다른 후보 숫자를 제거할 수 있다.(경우 2)
한 유닛에 같은 색상을 가진 후보 숫자가 존재한다면 그 색상은 해답이 될 수 없다.(경우 1)
한 칸에 색상이 존재하며 같은 유닛을 공유하는 곳에 다른 색상의 후보 숫자가 있으면 그 칸에서 후보 숫자를 제거할 수 있다.(경우 2)
등등 여러 경우로 세분할 수 있지만 결국 다 위의 두 경우로 귀결되는 것으로 이해할 수 있을 것이다.

6.2.2. 교대 추론 사슬

Alternating Inference Chains
X-순환의 원리와 똑같으며 단지 연결의 개념이 확장되었을 뿐이라는 차이점만 존재한다.
연결의 개념이 확장되었기에 여러 개의 후보 숫자를 동시에 고려할 수 있다.

이름에 사슬이 들어가있지만 X-사슬이 X-순환에 포함된다는 것을 이해하면 X-순환의 개념으로 이해하는 것이 편하다.
파일:스도쿠 교대 추론 사슬 예제.png
빨간 실선은 강한 추론을, 빨간 점선은 약한 추론을 의미한다.
설명의 편의를 위해
한 후보 숫자의 두 칸 간의 이어진 관계를 연결, 한 칸 내의 두 후보 숫자 간의 이어진 관계를 확장된 연결이라고 언급하겠다.

순환이기에 어느 곳에서부터 시작하든지 상관없으며 여기서는 셀 B5부터 시작하겠다.
셀 B5는 셀 E5와 후보 숫자 5에 대해 강한 연결을 가진다.
셀 E5에서 후보 숫자 5와 7은 확장된 약한 연결을 가진다.
셀 E5는 셀 E2와 후보 숫자 7에 대해 강한 연결을 가진다.
셀 E2는 셀 G2와 후보 숫자 7에 대해 약한 연결을 가진다.[30]
셀 G2는 셀 G3와 후보 숫자 7에 대해 강한 연결을 가진다.
셀 G3에서 후보 숫자 5와 7은 확장된 약한 연결를 가진다.
셀 G3는 셀 C3와 후보 숫자 5에 대해 강한 연결을 가진다.
셀 C3는 셀 C4와 후보 숫자 5에 대해 약한 연결을 가진다.
셀 C4는 셀 B5와 후보 숫자 5에 대해 강한 연결을 가진다.

보면 알겠지만 확장되든 말든 상관없이 강한 추론와 약한 추론이 반복해서 나타나기만 하면 되며 지금 이경우는 X-순환에서 연결 개수가 홀수이며 연속된 강한 연결을 가질 때를 그대로 적용할 수 있다.
즉, 셀 B5의 경우 후보 숫자 5만을 가질 수 있다.

파일:스도쿠 교대 추론 사슬 예제2.png
똑같은 스도쿠에서 발견할 수 있는 다른 교대 추론 사슬이다.
원리 자체야 어렵지 않으니 따라가다 보면 맞다는 것을 알 수 있을 것이며 이번에는 약한 추론이 연속해서 나타났으므로(X-사슬과 동일) 셀 D3는 7을 후보 숫자로 가질 수 없다는 것을 알 수 있다.

예제들을 보면 알겠지만 발견하기 상당히 힘들다. 문서의 위에 설명된 여러 기법을 모두 사용하고 나서 풀리지 않을 때 시도해 보자.
6.2.2.1. 그룹 교대 추론 사슬
Grouped Alternating Inference Chains
그룹 X-순환의 원리와 똑같으며 단지 연결의 개념이 확장되었을 뿐이라는 차이점만 존재한다.
파일:스도쿠 그룹 교대 추론 사슬 예제.png
예제를 만들기 위하여 억지로 교대 추론 사슬 그림에서 숫자를 변경했다. 해답은 2개 이상이므로 예제로만 받아들이자.
추론의 개수가 홀수인 순환이 형성되었으며 강한 추론이 연속되므로 셀 E2의 후보 숫자를 7로 확정할 수 있다.[31]

그룹 교대 추론 사슬을 사용하지 않고, 이 스도쿠는 후보 숫자 5, 7만 사용하여 셀 C3의 후보 숫자를 하나로 고정할 수 있다. 복습 겸 찾아보자.
6.2.2.2. 거의 잠긴 집합을 포함한 교대 추론 사슬
Alternating Inference Chains with Almost Locked Sets(AIC with ALS)
단일 사슬 확장의 끝[32]으로 위에 언급된 모든 사슬은 이것으로 풀이될 수 있다.
거의 잠긴 집합을 활용하여 하나의 그룹을 만들어 이를 이을 수 있기에 그룹 교대 추론 사슬과 ALS-XZ의 확장으로 여길 수 있다. 즉, 거의 잠긴 집합의 개념에 대한 이해가 필요하므로 아래 ALS-XZ까지는 보고 돌아오자.

주의해야 할 점은 추론할 때 거의 잠긴 집합을 활용해 만든 그룹의 후보 숫자와 그룹 밖의 다른 후보 숫자끼리 바로 추론하지 않도록 주의해야 한다. 추론은 셀(또는 그룹)내의 후보 숫자 간이나 같은 후보 숫자에 대하여 서로 다른 셀(또는 그룹)끼리 추론하는 것이다.

예제 추가 필요

6.3. 피쉬 변형

미뤄 놓았던 피쉬들을 다룰 때가 되었다. 쉬운 이해를 위해 위에서 쓴 핀드 X-윙을 다시 가져오겠다.
5
8
9
34555
78951
56
1247553
4
6

물고기: 하나의 후보 숫자에 대하여 A개의 서로 다른 유닛[33]들과 B개의 (A개의 유닛과 다른) 서로 다른 유닛들이 대응되면서 A=B일 때 사용하는 기법.
이 때 A개의 유닛들을 기본 유닛(Base Unit), B개의 유닛들을 덮개 유닛(Cover Unit)이라 한다. 위에서는 4열과 7열이 기본 유닛이고, 6행과 7행이 덮개 유닛이다.
지느러미(Fin): 기본 유닛에 포함되며 덮개 유닛에는 포함되지 않는 칸. 위의 초록색 칸에 해당한다.
잠재적 제거(Potential Elimination): 덮개 유닛에는 포함되며 기본 유닛에는 포함되지 않는 칸. 위의 빨간색 칸에 해당한다.
정점(Vertex): 기본 유닛과 덮개 유닛 모두에는 포함되는 칸, 이러한 모든 정점을 모은 것을 물고기 몸통(Body)이라 한다. 위의 노란색 칸에 해당한다.

물고기의 명명: 물고기는 '물고기 특성 + 물고기 모양 + 물고기 크기'라는 규칙에 따라 이름 지어진다.

물고기 특성
지느러미가 없는(Unfinned): 지느러미(fin)가 없는 물고기, 생략 가능
지느러미를 가진(Finned): 적어도 하나의 지느러미(fin)를 가지는 물고기
사시미(Sashimi): 모든 지느러미(fin)를 제거할 경우 기초 기법이나 더 작은 물고기로 분해될 수 있는 물고기

물고기 모양
  1. 기본(Basic): n개 행 x n개 열 모양 또는 그 역, 생략 가능하다.
  2. 프랑켄(Franken): n개 (행 또는 상자) x n개 (열 또는 상자) 모양 또는 그 역
  3. 돌연변이(Mutant): n개 유닛 x n개 유닛 모양(기본과 프랑켄을 포함할 수도 아닐 수도 있다.)
  4. 크라켄(Kraken): 1~3 모양이면서 패턴 밖의 정보를 필요로 하는 모양

물고기 크기
  1. Cyclopsfish(1-Fish): 피쉬를 이루는 모든 칸들이 1개 유닛 × 1개 유닛에 속함, 숨겨진 하나(Hidden Single), 상자까지 고려하면 교차점(Intersection)이다.
  2. X-wing(2-Fish): 피쉬를 이루는 모든 칸들이 2개 유닛 × 2개 유닛에 속함
  3. Swordfish(3-Fish): 피쉬를 이루는 모든 칸들이 3개 유닛 × 3개 유닛에 속함
  4. Jellyfish(4-Fish): 피쉬를 이루는 모든 칸들이 4개 유닛 × 4개 유닛에 속함
  5. Starfish(5-Fish): 피쉬를 이루는 모든 칸들이 5개 유닛 × 5개 유닛에 속함, squirmbag이라고도 불린다.
  6. Whale(6-Fish): 피쉬를 이루는 모든 칸들이 6개 유닛 × 6개 유닛에 속함
  7. Leviathan(7-Fish): 피쉬를 이루는 모든 칸들이 7개 유닛 × 7개 유닛에 속함

논리
1. 만약 적어도 하나의 지느러미(fin)가 후보 숫자를 가진다면,
이 경우 지느러미(fin)의 영향 아래에 있는 잠재적 제거(Potential Elimination)는 후보 숫자를 가질 수 없다.
2. 만약 모든 지느러미(fin)가 후보 숫자를 가지지 않으면 지느러미(fin)가 없는 물고기의 형태로 귀결되므로, 어떤 정점(Vetex)은 후보 숫자를 가져야 한다. 이를 만족하는 정점으로는 모든 기본 유닛(Base Unit)당 정점(Vertex) 하나가 존재하여 모든 덮개 유닛(Cover Unit)이 정점을 덮을 수 있어야 한다.[34]
이 경우[35] 모든 지느러미(fin)와 잠재적 제거(Potential Elimination)는 후보 숫자를 가질 수 없다.
예시를 통해 알아보자.
.
.
.
333333333
.
333333333
.
333333333
.
후보 숫자 3에 대하여 (2개의 열과 하나의 박스)와 3개의 열이 대응되기 때문에 지느러미가 없는 프랑켄 황새치이다.(Unfinned Franken Swordfish/3-Fish)라 명명할 수 있다.
1열, 8열, 5번 박스가 기본 유닛(Base Unit)이고 4행, 6행, 8행이 덮개 유닛(Cover Unit)이다.
따라서 정점(Vertex)를 노란색으로, 지느러미(fin)를 초록색으로[36], 잠재적 제거(PE)를 빨간색으로 칠할 수 있다.
지느러미가 없는 물고기이므로 모든 잠재적 제거(PE)는 후보 숫자를 가질 수 없다.
77
77
77
7777
77777
7777
77777
7777
77777
후보 숫자 7에 대하여 (3개의 행과 1개의 열)과 (2개의 열과 2개의 상자)가 대응되기 때문에 지느러미가 없는 돌연변이 해파리(Unfinned Mutant Jellyfish)라 명명할 수 있다.
4행, 6행, 8행, 5열이 기본 유닛(Base Unit)이고 2열, 8열, 5번 상자, 8번 상자가 덮개 유닛(Cover Unit)이다.
따라서 정점(Vertex)를 노란색으로, 지느러미(fin)를 초록색으로[37], 잠재적 제거(PE)를 빨간색으로 칠할 수 있다.
지느러미가 없는 물고기이므로 모든 잠재적 제거(PE)는 후보 숫자를 가질 수 없다.
888
8888
888
.
.
.
.
888888888
.
후보 숫자 8에 대하여 2개의 열과 (1개의 행과 1개의 상자)가 대응되기 때문에 지느러미가 있는 돌연변이 X-윙(Finned Mutant X-Wing)이라 명명할 수 있다.
2열 9열이 기본 유닛(Base Unit)이고 8행, 1번 상자가 덮개 유닛(Cover Unit)이다.
따라서 정점(Vertex)를 노란색으로, 지느러미(fin)를 초록색으로, 잠재적 제거(PE)를 빨간색으로 칠할 수 있다.
지느러미가 있는 물고기이므로 잠재적 제거(PE) 중 지느러미(fin)의 영향을 받는 칸(B1, B3)은 후보 숫자를 가질 수 없다.

6.3.1. 수호자

Guardians, Broken Wings, Turbot-Fish

7. 최후의 수단

Last Resort
사람이 사용하기에는 너무 복잡하거나, 많은 작업이 필요하거나, 논리가 없는 것들이다.

7.1. 강제 사슬

Focing Chains
특정 후보 숫자가 들어가든 들어가지 않든, 특정 셀의 어떤 후보 숫자가 되든, 각각의 사슬을 따라 가본 결과 특정 결과가 강제(force)될 때 사용할 수 있다. 따라서 두 개 이상의 사슬을 사용하는 다중 사슬 기법이다.여기까지는 기법으로 인정하나 아래 강제 그물(Forcing Net)부터 최후의 수단으로 취급하기도 한다.

원리 자체는 간단하지만 실제로 시도해보는 데에는 많은 시간이 걸릴 것이다. 문제의 사본을 준비하거나 어플의 경우 덮어 씌우(overlay)는 기능을 이용하는 것이 좋다.

7.1.1. Digit Forcing Chains

7.1.2. Cell Forcing Chains

7.1.3. Unit Forcing Chains

7.1.4. 강제 그물

Forcing Net

일반화된 강제 사슬

7.2. 보우만의 빙고

Bowman's Bingo
일종의 귀류법으로 특정 후보 숫자가 특정 칸에 대한 해답이라고 가정하고 결과를 살펴본다. 만약 이것이 모순으로 이어지면 초기 가정이 잘못되었다고 판단하여 그 후보 숫자를 해당 칸에서 제거한다. 쉽게 말해 찍기.

7.3. 무차별 대입법

Brute Force

사람이 사용하는 것이 아니다. 깊이 우선 탐색을 적용하여 칸에 숫자를 넣은 다음 결과를 계산하고 프로그램이 모순에 도달하거나 해답을 찾을 때까지 다른 숫자를 배치하여 스도쿠를 해결한다. 모순에 도달하면 알고리즘은 배치된 숫자를 제거하고 대안을 시도한다. 이 작업을 모든 대안이 시도될 때까지 계속한다.

유명한 알고리즘으로 Dancing Links(DLX)와 Ariadne's Thread 등이 존재한다.

8. 문서 양식

||<tablebordercolor=#000000><table bgcolor=#FFFFFF,#444444><table width=306px><width=34px><:>||<width=34px><:>||<width=34px><:>||<width=34px><bgcolor=#EEEEEE,#555555><:>||<width=34px><bgcolor=#EEEEEE,#555555><:>||<width=34px><bgcolor=#EEEEEE,#555555><:>||<width=34px><:>||<width=34px><:>||<width=34px><:>||
||<:>||<:>||<:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<:>||<:>||<:>||
||<:>||<:>||<:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<:>||<:>||<:>||
||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<:>||<:>||<:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||
||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<:>||<:>||<:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||
||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<:>||<:>||<:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||
||<:>||<:>||<:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<:>||<:>||<:>||
||<:>||<:>||<:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<:>||<:>||<:>||
||<:>||<:>||<:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<bgcolor=#EEEEEE,#555555><:>||<:>||<:>||<:>||

문서 작성용 임시 템플릿.

<bgcolor=#FFFFFF,#444444>: 짙은 회색
<bgcolor=#EEEEEE,#555555>: 옅은 회색
<bgcolor=#FFFF00,#AAAA00>: 노란색
<bgcolor=#FFAAAA,#AA5555>: 빨간색
<bgcolor=#00CC00,#007700>: 초록색
<bgcolor=#AAAAFF,#5555AA>: 파란색

X: 글자 색 배경색(짙은 회색)으로
X: 글자 크기 작게
[1] r3c7과 같은 표기는 다른 곳에서 볼 수 있으니 알아두면 좋다.[2] 특히 대부분의 어플리케이션들의 경우, 한 칸을 맞히고 나면 같은 가로줄/세로줄/박스에 있는 다른 칸들의 후보숫자가 자동적으로 제거되는 기능이 있어 편리하다.[3] 난이도가 낮다고 판단될 때, 논리적이기 보다 빠르게 풀고 싶을 때, 어플이 아닌 종이에 직접 써야할 때 등[4] 후보 숫자를 사용하지 않는 경우 발견하기 어려워 후순위로 밀렸다. 원한다면 먼저 시행해도 좋다.[5] 여기서 house는 unit의 의미이다. 용어 통일을 위해 유닛으로 번역한다.[6] 생각해보면 당연한 것이 0개의 칸이 더 비어 있는 경우는 아무 소용이 없고 1개의 칸이 더 비어 있는 경우는 그 전에 숨겨진 하나(Hidden Single)로 이미 제거될 것이다.[7] (X, Y, Z), (X, Y, Z), (X, Y)의 형태이다.[8] 숨겨진 둘은 숨겨진/드러난 하나, 숨겨진 셋은 숨겨진/드러난 하나/둘, 숨겨진 넷은 숨겨진/드러난 하나/둘/셋이 각 유닛에 없는 경우[9] 앞서 기초 기법들을 모두 적용할 경우 부분집합 기법을 적용하기 위해서는 빈칸이 최소 2칸 더 필요할 것이라 언급한 것도 기억하자. 상보성을 배운 지금이라면 이 예시에서 드러난 다섯이 존재한다면 상보적으로 숨겨진 하나가 존재할 것이라는 사실은 당연할 것이다.[10] 참고로, 드러난/숨겨진 부분집합처럼 n이 5인 경우(Squirmbag)와 그 이상은 일반적인 스도쿠에서 다루지 않으며 확장된 스도쿠에서는 유용할 수 있다.[11] n개의 칸에 n개의 후보 숫자가 있는 것. 드러난 부분집합은 모두 잠긴 집합에 속한다.[12] 위 예제의 경우 심플 컬러링과 X-윙의 반복으로 젤리피쉬 사용없이 후보 숫자를 더 지울 수 있다. 한 번 도전해 보자.[13] XZ칸과 YZ칸은 서로를 바라본다면 즉, XY, XZ, YZ 칸들이 하나의 유닛에 존재한다면 XY-윙이 아닌 드러난 셋이 된다.[14] 즉, 위 예시에서 셀 A1이 후보 숫자 7을 가지지 않는다 하더라도 노란색 칸들이 서로 후보 숫자 7, 8, 9에 대한 약한 연결을 가진다는 말은 틀린 말이 아니다.[15] 일반적으로 연결이 3, 5개인 사슬을 사용하며 더 길어져도 상관은 없다.[16] A3와 J3의 드러난 둘로 인해 C3의 후보 숫자에서 7, 8을 제거할 수 있다. E7과 H7의 드러난 둘로 인해 C7과 G7의 후보 숫자에서 7, 9를 제거할 수 있다.G8을 피봇으로 하고 F8, J9을 윙으로 하는 XY-윙으로 인해 F9의 후보 숫자에서 7을 제거할 수 있다.[17] Y(m+1)은 Ym과만 다르면 충분하다. 즉, X여도 괜찮으며 Y1=Y3여도 괜찮다.[18] 사슬의 길이는 상관없다.[19] W-Wing만 사용한다면 유일성은 알 수 없다. 두 칸 모두에 7이 존재할 수도 있다.[20] A1이 3이 아닐 경우, A1은 4가 맞고, F1은 4가 아니며, F7은 4가 맞고, C7은 4가 아니므로 C7은 3이 맞다. 셀 A9은 셀 A1과 C7을 동시에 바라보고 있으므로, 셀 A9에서 후보 숫자 3을 지울 수 있다.[21] 모든 드러난 부분집합은 잠긴 집합에서 나타나며 아래 기법들은 이러한 드러난 부분집합의 응용으로 볼 수 있다.[22] 특별한 명칭은 존재하지 않는다.[23] Z는 존재하지 않아도 상관없다.[24] 거의 잠긴 집합은 한 유닛에 있어야한다. 예를 들어, 셀 B1과 셀 B2도 거의 잠긴 집합이며 셀 B1과 셀 F1도 거의 잠긴 집합이지만 셀 B1, B2, F1은 한 유닛에 없기에 거의 잠긴 집합이 아니다.[25] 같아도 상관 없다.[26] 심플 컬러링과 X-사슬과의 관계처럼 3D 메두사에서 약한 추론까지 고려하면 교대 추론 사슬이다.[27] 셀 C7의 파란색과 셀 C6의 초록색[28] 셀 E4의 초록색과 셀 D4의 파란색[29] 셀 E5의 파란색과 셀 E6의 초록색[30] 강한 연결은 약한 연결이 될 수 있다. 많이 반복한 말이기에 이 이하의 사슬에서는 이 문구를 생략할 것이다.[31] 셀 E2와 이어진 모든 추론이 강한 추론이므로 셀 G2의 후보 숫자를 6으로 확정할 수 있게도 그릴 수 있다.[32] 이를 이해한다면 거의 잠긴 집합뿐만 아니라 사슬이 아닌 다른 기법이 있으면 그것을 사슬에 포함시켜 이해할 수 있을 것이다.[33] 이때 그 유닛이 꼭 행과 열일 필요는 없다. 즉, 이제까지는 행과 열에서 피쉬가 생기는 경우들만 다뤄왔지만, 피쉬가 생길 때 상자가 끼어 있어도 피쉬가 성립할 수 있다는 것이다.[34] 모든 덮개 유닛들이 모든 정점을 포함해야 한다. 이에 어긋나는 것은 정의에 어긋난다.[35] 위 기본 물고기 증명과 동일하게 해서[36] 존재하지 않는다.[37] 존재하지 않는다.

분류