숫자야구, 그냥 찍고 있지 않으신가요?
숫자야구는 간단해 보이지만 의외로 깊은 전략이 숨어 있는 게임입니다. 상대방이 생각한 3~4자리 숫자(각 자리 숫자는 모두 다름)를 제한된 횟수 안에 맞히는 이 게임, 단순히 감으로 찍으면 10번이 넘게 걸릴 수도 있습니다.
하지만 정보이론(Information Theory)과 최적 소거법을 활용하면 거의 항상 4~5번 안에 정답을 찾을 수 있습니다. 이 글에서 그 전략을 모두 공개합니다.
숫자야구 기본 규칙 복습
혹시 처음 접하시는 분을 위해 규칙부터 정리합니다.
- Strike(스트라이크): 숫자와 위치가 모두 맞음
- Ball(볼): 숫자는 맞지만 위치가 다름
- Out: 해당 숫자가 정답에 없음
예시: 정답이 4 2 7이고, 내가 1 2 3을 불렀다면 → 1S 0B (2의 위치가 맞음)
3자리 숫자야구에서 가능한 경우의 수는 0~9 중 서로 다른 3개를 순서 있게 나열한 것으로 10 × 9 × 8 = 720가지입니다.
정보이론으로 이해하는 최적 첫 수
엔트로피란 무엇인가?
정보이론의 핵심 개념인 엔트로피(Entropy)는 "불확실성의 크기"를 나타냅니다. 게임 초반에는 720가지 가능성이 모두 열려 있으므로 엔트로피가 최대입니다. 좋은 추측은 이 엔트로피를 가장 빠르게 줄이는 것입니다.
즉, 한 번의 추측으로 가능한 경우의 수를 가장 균등하게 분할하는 숫자가 최적의 첫 수입니다.
최적 첫 수: 1 2 3 또는 0 1 2
컴퓨터 시뮬레이션으로 검증된 결과, 3자리 숫자야구에서 최적의 첫 추측은 0 1 2 또는 1 2 3처럼 연속된 작은 숫자 조합입니다.
이 추측의 결과는 총 14가지 패턴(0S0B, 1S0B, 0S1B, ... 3S0B)으로 나뉘는데, 각 패턴이 상대적으로 균등하게 경우의 수를 나눕니다. 특히 3S0B가 나오면 그 즉시 정답이고, 다른 결과들도 남은 경우를 80~150개 수준으로 줄여줍니다.
단계별 최적 전략
1단계: 첫 번째 추측 — 정보 최대화
추천 첫 수: 1 2 3
이 선택의 이유는 가장 많이 쓰이는 숫자 영역(1~3)을 테스트하면서, 결과에 따라 남은 경우의 수를 효율적으로 줄이기 때문입니다.
- 0S 0B → 1, 2, 3이 모두 없음. 남은 후보: 약 60가지
- 1S 0B → 정확히 한 자리만 맞음. 남은 후보: 약 120가지
- 0S 1B → 숫자 하나는 있지만 위치가 틀림. 남은 후보: 약 108가지
- 1S 1B → 스트라이크 1, 볼 1. 남은 후보: 약 80가지
2단계: 두 번째 추측 — 탐색 영역 확장
1단계 결과를 토대로 테스트하지 않은 숫자 영역을 탐색합니다.
1단계에서 0S 0B가 나왔다면(1, 2, 3 모두 없음) → 두 번째 추측: 4 5 6
1단계에서 1S 0B가 나왔다면 → 어떤 위치가 맞는지 특정하는 추측을 설계합니다.
핵심 원칙: 두 번째 추측은 첫 번째와 겹치는 숫자를 최소화해서 새로운 정보를 최대로 얻습니다.
3단계: 소거법으로 범위 압축
1~2번의 추측으로 얻은 정보를 조합하면 이미 가능한 경우가 20~50개 수준으로 줄어듭니다. 이때부터는 적극적인 소거법을 사용합니다.
소거법 4가지 규칙
- Out 처리된 숫자 완전 제거: 결과에서 Ball/Strike가 0개인 숫자는 정답에 절대 없습니다.
- Strike 자리 고정: 스트라이크가 난 자리의 숫자는 그 위치에 반드시 있습니다.
- Ball 숫자 재배치: Ball이 난 숫자는 다른 위치에 있어야 합니다. 시도한 위치는 제외하고 남은 자리에 넣어야 합니다.
- 교차 추론: 여러 번의 결과를 교차해서 더 많은 정보를 추론합니다.
실전 예시: 4번 안에 맞히기
정답을 7 3 9라 가정하고 전략을 따라가 보겠습니다.
1번째: 1 2 3 → 1S 0B
- 1은 없음 (Out), 2는 없음 (Out)
- 3이 Strike — 즉, 3번째 자리에 3이 있습니다
2번째: 4 5 6 → 0S 0B
- 4, 5, 6 모두 없음
- 이제 0, 7, 8, 9만 남고, 3번째 자리는 3으로 확정
- 남은 후보 대폭 감소
3번째: 7 8 3 → 2S 0B
- 3번째 자리 3은 이미 확정, Strike 하나 더 — 1번째 자리가 7로 확정
- 8은 없음 (Out)
- 남은 경우: 첫 자리 7, 셋째 자리 3 확정. 둘째 자리는 0 또는 9
4번째: 7 9 3 → 3S → 정답!
단 4번 만에 720분의 1 확률을 맞혔습니다.
고급 전략: 정답 후보 추적표 만들기
종이나 메모앱에 간단한 표를 만들면 훨씬 빠르게 정답에 도달할 수 있습니다.
추적표 구성
- 있는 숫자 (Confirmed): Ball이나 Strike로 확인된 숫자 목록
- 없는 숫자 (Eliminated): Out 처리된 숫자 목록
- 자리 확정 (Fixed): 특정 자리에 어떤 숫자가 있는지
- 자리 불가 (Excluded): Ball이 난 숫자가 있을 수 없는 자리
이 4가지 카테고리만 잘 관리해도 대부분 5번 이내에 정답을 찾을 수 있습니다.
4자리 숫자야구는 어떻게 다를까?
4자리의 경우 가능한 경우의 수는 10 × 9 × 8 × 7 = 5,040가지로 크게 늘어납니다. 하지만 전략 원칙은 동일합니다.
- 첫 수: 0 1 2 3 또는 1 2 3 4 추천
- 두 번째 수: 4 5 6 7 (겹침 없이 새 영역 탐색)
- 세 번째 수부터 소거법 적용
잘 하면 5~6번 안에 맞출 수 있습니다.
숫자야구로 키울 수 있는 인지 능력
숫자야구는 단순한 운 게임이 아닙니다. 다음과 같은 고차원 인지 능력을 직접 훈련합니다.
- 논리적 추론: 제한된 단서로 결론 도출하기
- 작업 기억: 여러 조건을 머릿속에서 동시에 유지하기
- 소거적 사고: 가능성을 체계적으로 줄여나가기
- 전략적 계획: 단순히 맞히는 게 아니라 정보를 최대로 얻는 수를 선택하기
- 패턴 인식: 결과들의 패턴에서 숨은 규칙 찾기
이런 이유로 숫자야구는 논리 사고력을 기르는 교육 도구로도 널리 활용됩니다. 실제로 코딩 인터뷰에서도 숫자야구 알고리즘 구현이 단골 문제로 등장합니다.
컴퓨터는 몇 번에 맞힐까?
최적화된 알고리즘(Knuth의 minimax 전략 응용)을 사용하면 3자리 숫자야구를 항상 5번 이내에 풀 수 있습니다. 평균은 약 4.2번입니다.
인간 플레이어도 이 전략을 익히면 평균 4~5번 안에 맞힐 수 있습니다. 처음엔 어색하지만 10판 정도 연습하면 자연스럽게 몸에 배게 됩니다.
오늘부터 바로 연습하기
전략을 머리로만 익히는 것보다 실제로 반복 플레이하는 것이 가장 빠른 학습법입니다. 아래 도구들로 바로 연습해보세요:
마무리: 전략이 있는 게임이 더 재밌다
숫자야구는 "운이 좋으면 맞힌다"는 게임에서 "전략을 알면 거의 확실히 맞힌다"는 게임으로 바뀝니다. 정보를 최대화하는 첫 수, 체계적인 소거법, 교차 추론. 이 세 가지만 기억해도 당신의 승률은 극적으로 올라갑니다.
오늘 바로 친구나 가족과 한 판 해보세요. 그리고 4번 안에 맞혔을 때의 그 쾌감을 느껴보시기 바랍니다! 🎯