해결 팁

XY체인 기법 상세 설명: 이중값 셀의 체인 추론

2025-06-05 · 10 분 읽기

XY체인(XY-Chain)은 스도쿠 고급 기법 중 강력한 체인 추론 방법입니다. XY윙의 확장 형태로, 여러 이중값 셀(후보 숫자가 2개뿐인 셀)로 형성된 체인 구조를 통해 후보 숫자를 제거합니다.

핵심 원리:
XY체인은 일련의 이중값 셀로 구성되며, 인접한 셀 간에 하나의 후보 숫자를 공유합니다. 체인의 시작점과 끝점에는 각각 공유되지 않는 후보 숫자가 있으며, 이 두 숫자가 같은 경우(Z로 표기), 체인의 시작점과 끝점을 모두 볼 수 있는 셀에서 후보 숫자 Z를 제거할 수 있습니다. 이유: 체인을 따라 추론하면 Z는 반드시 체인의 시작점이나 끝점에 존재합니다.
XY체인 원리 애니메이션
XY체인 원리: 시작{Z,A}과 끝{C,Z}이 후보 숫자 Z를 공유, Z는 시작 또는 끝에 존재, 공통 영역에서 Z 제거

이 글을 읽기 전에 스도쿠 행, 열, 박스 명명 규칙, 네이키드 페어, XY윙의 기본 개념을 이해하는 것이 좋습니다.

XY체인의 구조

XY체인에는 다음 핵심 요소가 포함됩니다:

  • 체인 노드: 각 노드는 이중값 셀 {A,B}입니다
  • 체인 연결: 인접 노드는 서로 "볼 수" 있어야 하며(같은 행, 열 또는 박스), 하나의 후보 숫자를 공유해야 합니다
  • 시작점과 끝점: 각각 인접 노드와 공유하지 않는 후보 숫자가 있습니다
  • 제거 조건: 시작점과 끝점의 비공유 후보 숫자가 같을 때 제거가 가능합니다

체인 표기: A(x,y) → B(y,z) → C(z,w) → ... 괄호 안은 후보 숫자, 화살표는 체인 연결 방향을 나타내며, 인접 노드는 하나의 숫자(y, z 등)를 공유합니다.

XY체인이 작동하는 이유

1 체인 전파: 체인이 A{X,Y} → B{Y,Z} → C{Z,W}인 경우, A=X이면 B는 Z(B는 Y가 될 수 없으므로), C는 W(C는 Z가 될 수 없으므로)여야 합니다.
2 두 가지 가능성: 시작점에는 두 개의 후보 숫자 {P,Q}가 있고, Q는 다음 노드와 공유됩니다. 시작점=P이면 추론 종료, 시작점=Q이면 체인을 따라 끝점까지 전파됩니다.
3 핵심 결론: 시작점의 비공유 숫자 P가 끝점의 비공유 숫자와 같으면, P는 반드시 시작점이나 끝점 중 하나에 존재합니다.
4 제거 대상: 시작점과 끝점을 모두 볼 수 있는 셀에는 P가 있을 수 없습니다(P는 반드시 시작점이나 끝점에 있으므로).

예제 1: 4노드 XY체인

간단한 4노드 XY체인 예제를 살펴보겠습니다.

XY체인 예제 1
그림 1: XY체인 R2C2{3,7} → R2C6{3,5} → R9C6{2,5} → R9C7{2,7}, R2C7에서 7 제거 가능
솔버에서 이 예제 열기

분석 과정

1 체인 노드 식별:
  • R2C2: 후보 숫자 {3, 7} (시작점)
  • R2C6: 후보 숫자 {3, 5}
  • R9C6: 후보 숫자 {2, 5}
  • R9C7: 후보 숫자 {2, 7} (끝점)
2 체인 연결 확인:
  • R2C2와 R2C6은 같은 행(2행)에 있으며, 후보 숫자 3을 공유
  • R2C6과 R9C6은 같은 열(6열)에 있으며, 후보 숫자 5를 공유
  • R9C6과 R9C7은 같은 행(9행)에 있으며, 후보 숫자 2를 공유
3 제거 숫자 결정:
  • 시작점 R2C2{3,7}의 비공유 숫자 = 7 (3은 R2C6과 공유)
  • 끝점 R9C7{2,7}의 비공유 숫자 = 7 (2는 R9C6과 공유)
  • 둘이 같음! Z = 7
4 추론 과정:
  • R2C2=7인 경우 → 7은 시작점에 있음
  • R2C2=3인 경우 → R2C6은 3이 될 수 없음 → R2C6=5 → R9C6은 5가 될 수 없음 → R9C6=2 → R9C7은 2가 될 수 없음 → R9C7=7 → 7은 끝점에 있음
  • 어느 경우든 7은 반드시 R2C2 또는 R9C7에 있음
5 제거 대상 찾기: R2C7은 시작점 R2C2(같은 행)와 끝점 R9C7(같은 열)을 모두 볼 수 있습니다.
결론:
XY체인: R2C2{3,7} → R2C6{3,5} → R9C6{2,5} → R9C7{2,7}
R2C7에서 후보 숫자 7 제거 가능.

예제 2: 10노드 긴 체인

XY체인은 매우 길어질 수 있습니다. 다음은 체인 추론의 강력한 능력을 보여주는 10노드 예제입니다.

XY체인 예제 2
그림 2: XY체인 R2C5{1,5} → R2C1{1,5} → R1C1{5,8} → R1C7{7,8} → R3C7{7,8} → R3C2{4,8} → R7C2{4,8} → R8C1{4,8} → R8C7{4,9} → R8C3{5,9}, R8C5에서 5 제거 가능
솔버에서 이 예제 열기

분석 과정

1 체인 노드 식별 (10개):
  • R2C5: {1, 5} (시작점)
  • R2C1: {1, 5}
  • R1C1: {5, 8}
  • R1C7: {7, 8}
  • R3C7: {7, 8}
  • R3C2: {4, 8}
  • R7C2: {4, 8}
  • R8C1: {4, 8}
  • R8C7: {4, 9}
  • R8C3: {5, 9} (끝점)
2 체인 연결 확인:
  • R2C5 → R2C1: 같은 행, 1(또는 5) 공유
  • R2C1 → R1C1: 같은 열, 5 공유
  • R1C1 → R1C7: 같은 행, 8 공유
  • R1C7 → R3C7: 같은 열, 7(또는 8) 공유
  • R3C7 → R3C2: 같은 행, 8 공유
  • R3C2 → R7C2: 같은 열, 4(또는 8) 공유
  • R7C2 → R8C1: 같은 박스, 8 공유
  • R8C1 → R8C7: 같은 행, 4 공유
  • R8C7 → R8C3: 같은 행, 9 공유
3 제거 숫자 결정:
  • 시작점 R2C5{1,5}의 비공유 숫자 = 5 (1은 R2C1과 공유)
  • 끝점 R8C3{5,9}의 비공유 숫자 = 5 (9는 R8C7과 공유)
  • 둘이 같음! Z = 5
4 추론 결론: 시작점 R2C5가 1이든 5이든 관계없이, 후보 숫자 5는 반드시 시작점 R2C5 또는 끝점 R8C3에 존재합니다.
5 제거 대상 찾기: R8C5는 시작점 R2C5(같은 열)와 끝점 R8C3(같은 행)을 모두 볼 수 있습니다.
결론:
XY체인 (10노드): R2C5 → R2C1 → R1C1 → R1C7 → R3C7 → R3C2 → R7C2 → R8C1 → R8C7 → R8C3
R8C5에서 후보 숫자 5 제거 가능.

XY체인 찾는 방법

XY체인을 찾으려면 체계적인 접근이 필요합니다:

1 이중값 셀 표시: 먼저 후보 숫자가 2개뿐인 모든 셀을 찾습니다.
2 시작점 선택: 이중값 셀을 체인의 시작점으로 선택하고, 두 개의 후보 숫자 {P,Q}를 기록합니다.
3 체인 확장: 현재 노드를 "볼 수" 있고 하나의 후보 숫자를 공유하는 이중값 셀을 다음 노드로 찾습니다.
4 종료 조건 확인: 확장할 때마다 끝점의 비공유 숫자가 시작점의 비공유 숫자 P와 같은지 확인합니다.
5 제거 대상 찾기: 시작점과 끝점을 모두 볼 수 있고 P를 포함하는 셀을 찾습니다.
주의사항:
  • 체인의 각 노드는 이중값 셀이어야 합니다
  • 인접 노드는 서로 볼 수 있어야 합니다 (같은 행, 열 또는 박스)
  • 인접 노드는 하나의 후보 숫자를 공유해야 합니다
  • 제거 조건: 시작점과 끝점의 비공유 후보 숫자가 같음
  • XY윙은 XY체인의 특수한 경우입니다 (길이 3의 체인)

XY체인과 XY윙의 관계

XY윙은 길이 3의 XY체인으로 볼 수 있습니다:

  • XY윙: 피벗{X,Y} → 윙1{X,Z} → 윙2{Y,Z}... 등, 이것은 실제로 표준 체인 형식이 아닙니다
  • 실제 관계: XY윙의 구조는 "Y"자 형태이고, XY체인은 선형입니다
  • 공통점: 둘 다 이중값 셀을 사용하여 논리적 제거를 수행합니다
  • 차이점: XY체인은 체인 연결이 필요하고, XY윙은 피벗이 두 윙을 모두 볼 수 있어야 합니다

기법 요약

XY체인 적용의 핵심 포인트:

  • 노드 요구사항: 모든 노드가 이중값 셀
  • 연결 요구사항: 인접 노드가 서로 볼 수 있고 하나의 후보 숫자를 공유
  • 제거 조건: 시작점과 끝점의 비공유 후보 숫자가 같음
  • 제거 대상: 시작점과 끝점을 모두 볼 수 있는 셀 내의 해당 후보 숫자
  • 체인 길이: 이론적으로 무제한, 길수록 찾기 어렵지만 제거 능력이 강함
지금 연습하세요:
스도쿠 게임 시작하고 XY체인을 사용한 제거를 시도해 보세요! 먼저 모든 이중값 셀을 찾은 다음 체인으로 연결해 보세요.