스도쿠 Swordfish 기법 - 3행 3열을 이용한 고급 소거법

Swordfish는 X-Wing을 3행·3열로 확장한 기법입니다. 세 행에서 특정 숫자의 후보가 모두 지정된 3개의 열 안에만 존재할 때, 그 3개의 열에서 해당 숫자를 대규모로 소거할 수 있습니다.

1. X-Wing 복습 & Swordfish 연결

Swordfish를 이해하려면 X-Wing의 논리를 완전히 체화해야 합니다. 먼저 X-Wing과 Swordfish의 관계를 정리합니다.

기법기준 행 수대상 열 수각 행의 후보 수
X-Wing2행정확히 2열각 행에서 정확히 2개
Swordfish3행정확히 3열각 행에서 2개 또는 3개
Jellyfish4행정확히 4열각 행에서 2~4개

가장 중요한 차이점: X-Wing은 각 기준 행에서 후보가 정확히 2개여야 하지만, Swordfish는 2개 또는 3개를 허용합니다. 단, 모든 후보는 지정된 3개의 열 안에만 있어야 합니다.

🎯 핵심 원리
3개의 행에서 숫자 N의 후보가 모두 특정 3개의 열 안에만 존재한다면, 그 3개의 행·열이 이루는 9개의 교점 중 어디에 N이 들어가든 각 열에서 N의 위치는 그 3개의 행 중 하나입니다. 따라서 그 3개의 열에서 3개의 기준 행을 제외한 나머지 셀의 N을 모두 소거할 수 있습니다.

2. Swordfish 성립 조건

Swordfish가 성립하기 위한 정확한 조건을 정리합니다.

1

3개의 기준 행 선택: 특정 숫자의 후보가 있는 3개의 행을 선택합니다.

2

후보 열 합집합: 3개 행 각각에서 해당 숫자의 후보 열 번호를 모두 모읍니다.

3

3열 조건 확인: 합집합이 정확히 3개의 열 번호로만 구성되어야 합니다 (3개 이하가 아닌 정확히 3개).

4

소거 실행: 해당 3개의 열에서 3개의 기준 행을 제외한 모든 셀의 후보에서 해당 숫자를 소거합니다.

⚠️ 조건 위반 예시
행 A: 1열, 4열 / 행 B: 1열, 4열, 7열 / 행 C: 4열, 7열, 9열
합집합 = {1열, 4열, 7열, 9열} → 4개의 열 → Swordfish 불성립 (Jellyfish는 가능할 수 있음)

3. 시각적 예시 분석

숫자 3에 대한 Swordfish 예시를 살펴봅니다. 노란색 셀이 Swordfish의 꼭짓점(anchor), 빨간색이 소거 대상입니다.

·
·
·
3?
·
·
3✗
·
3?
·
·
·
3✗
·
·
3?
·
·
·
·
·
3✗
·
·
3✗
·
3✗
·
·
·
3?
·
·
3?
·
3?
·
·
·
3✗
·
·
3✗
·
3✗
·
·
·
3✗
·
·
3✗
·
3✗
·
·
·
3?
·
·
·
·
3?
·
·
·
3✗
·
·
3✗
·
3✗
·
·
·
3✗
·
·
3✗
·
3✗

노란색(3?) = Swordfish 앵커 | 빨간색(3✗) = 소거 대상

위 예시 분석:

  • 기준 행: 행 1 (4열, 9열), 행 4 (4열, 7열, 9열), 행 7 (4열, 9열)
  • 후보 열 합집합: {4열, 7열, 9열} → 정확히 3개 ✅
  • Swordfish 성립!
  • 소거 범위: 4열·7열·9열에서 행 1·4·7을 제외한 모든 셀 (행 2,3,5,6,8,9)

4. Swordfish 탐색 5단계

실전에서 Swordfish를 찾는 체계적인 방법입니다.

1

숫자 선택: 아직 많이 남아있는 숫자를 선택합니다 (후보가 많을수록 Swordfish가 숨어있을 가능성이 높음).

2

행별 후보 열 목록 작성: 각 행에서 해당 숫자의 후보 열 번호를 적습니다. 후보가 4개 이상인 행은 제외합니다.

3

3행 조합 시도: 후보가 2~3개인 행들 중 3개를 골라 합집합을 계산합니다. C(n,3) 조합을 시험합니다.

4

3열 여부 확인: 합집합이 정확히 3개의 열이면 Swordfish 발견!

5

소거 전 검증: 소거 대상 셀들이 3개의 기준 행에 속하지 않는지 재확인 후 소거 실행.

💡 탐색 효율화 팁
후보가 이미 2개뿐인 행은 Swordfish에서 "강한 앵커" 역할을 합니다. 이런 행들을 먼저 짝지어보고, 나머지 한 행을 찾는 방식이 효율적입니다.

5. 실전 케이스 스터디

다른 기법이 전부 막힌 상황에서 Swordfish를 적용하는 실제 사례를 살펴봅니다.

상황: 숫자 9에 대한 각 행의 후보 목록

숫자 9의 후보 열Swordfish 가능?
행 12열, 6열⭐ 후보 2개
행 22열, 3열, 6열⭐ 후보 3개
행 31열, 5열, 8열합집합 계산 필요
행 42열, 6열, 9열합집합 계산 필요
행 52열, 6열⭐ 후보 2개
행 63열, 7열합집합 계산 필요
행 7~9각종 조합스킵

행 1, 2, 5로 시도:

행 1: {2열, 6열}

행 2: {2열, 3열, 6열}

행 5: {2열, 6열}

합집합 = {2열, 3열, 6열} → 정확히 3개 ✅ Swordfish 발견!

소거: 2열·3열·6열에서 행1·2·5를 제외한 모든 행(3,4,6,7,8,9)의 9 소거

효과: 예를 들어 행 4에서 2열·6열의 9가 소거되면 행4의 9 후보가 9열 하나만 남아 즉시 확정!

6. 열 기반 Swordfish

행 기반과 완전히 대칭적입니다. 3개의 열에서 특정 숫자의 후보가 모두 지정된 3개의 행 안에만 있을 때 성립합니다.

구분행 기반열 기반
기준3개의 행3개의 열
제한후보가 지정된 3개의 열 안에만후보가 지정된 3개의 행 안에만
소거3개 열에서 기준 3행 제외 소거3개 행에서 기준 3열 제외 소거

실전에서는 두 방향 모두 탐색해야 합니다. X-Wing처럼 보드를 90도 돌려서 보면 열 기반 탐색이 더 직관적으로 느껴집니다.

7. Jellyfish와 그 너머

Swordfish를 마스터했다면 이론적으로 Jellyfish(4행·4열)도 이해할 수 있습니다. 하지만 실용성 면에서는 Swordfish까지만 알아도 거의 모든 퍼즐을 풀 수 있습니다.

기법크기실전 빈도
X-Wing2×2높음
Swordfish3×3중간
Jellyfish4×4낮음
Squirmbag (5×5)5×5매우 낮음
🏆 고급자로 인정받는 기준
스도쿠 커뮤니티에서는 X-Wing과 Swordfish를 안정적으로 적용할 수 있으면 "고급 플레이어"로 인정합니다. 그 이상의 기법은 컴퓨터 솔버의 영역에 가까워집니다. Swordfish까지 완전히 소화한 것 자체가 대단한 성취입니다!

💡 Swordfish 이해도 확인 퀴즈

다음 상황에서 Swordfish가 성립하는지, 성립한다면 소거 범위는 어디인지 답하세요.

숫자 6에 대해:
행 2: 1열, 5열 (2개)
행 5: 1열, 5열, 8열 (3개)
행 8: 5열, 8열 (2개)
합집합 = ?

🏆 최고급 기법까지 마스터했습니다!

이제 고급 퍼즐에도 도전해보세요. X-Wing, Swordfish를 실전에서 써볼 시간!

스도쿠 플레이하기 → 고급 100제 PDF →