트랙
/
Scala
Scala
/
연습 문제
/
킬러 스도쿠 도우미
킬러 스도쿠 도우미

킬러 스도쿠 도우미

보통

지침

친구가 킬러 스도쿠(규칙은 아래에 있어요)를 푸는 법을 배우고 있는데, 어떤 숫자가 케이지에 들어갈 수 있는지 알아내는 걸 어려워해요. 그래서 주어진 케이지에 대해 가능한 모든 조합과 그 케이지에 영향을 주는 제약 조건을 나열하는 작은 프로그램을 작성해서 도와달라고 해요.

프로그램의 출력을 읽기 쉽게 만들기 위해, 프로그램이 반환하는 조합은 정렬되어 있어야 해요.

킬러 스도쿠 규칙

  • 표준 스도쿠 규칙이 적용돼요.
  • 보통 점선으로 표시되는 케이지 안의 숫자들을 더하면, 케이지 구석에 적힌 작은 수가 돼요.
  • 숫자는 케이지 안에서 한 번만 나타날 수 있어요.

더 자세한 설명은 이 가이드를 확인해 봐요.

예시 1: 가능한 조합이 하나뿐인 케이지

합이 7인 세 자리 케이지에는 유효한 조합이 124 하나뿐이에요.

  • 1 + 2 + 4 = 7
  • 합이 7이 되는 다른 조합, 예를 들어 232는 케이지 안에서 숫자를 반복하지 않는다는 규칙을 위반해요.

스도쿠 격자에 함께 묶인 것으로 표시된 세 개의 킬러 케이지가 있어요.
첫 번째 킬러 케이지는 격자의 왼쪽 위 모서리에 있는 3×3 박스에 있어요.
그 박스의 가운데 열이 케이지를 이루며, 위에서 아래로 다음 칸들로 되어 있어요: 첫 번째 칸에는 1과 케이지 합이 7임을 나타내는 연필 메모 7이 있고, 두 번째 칸에는 2, 세 번째 칸에는 5가 있어요.
숫자들은 실수를 나타내기 위해 빨간색으로 강조되어 있어요.
두 번째 킬러 케이지는 격자의 중앙 3×3 박스에 있어요.
그 박스의 가운데 열이 케이지를 이루며, 위에서 아래로 다음 칸들로 되어 있어요: 첫 번째 칸에는 1과 케이지 합이 7임을 나타내는 연필 메모 7이 있고, 두 번째 칸에는 2, 세 번째 칸에는 4가 있어요.
이 케이지의 숫자 중 어느 것도 강조되지 않았으므로 실수가 없어요.
세 번째 킬러 케이지는 격자의 중앙 3×3 박스 바깥 모서리를 따라 있어요.
이 케이지는 다음 세 칸으로 이루어져 있어요: 케이지의 왼쪽 위 칸에는 빨간색으로 강조된 2와 케이지 합 7이 있어요.
케이지의 오른쪽 위 칸에는 3이 있어요.
케이지의 오른쪽 아래 칸에는 빨간색으로 강조된 2가 있어요. 다른 모든 칸은 비어 있어요.

예시 2: 조합이 여러 개인 케이지

합이 10인 두 자리 케이지에는 가능한 조합이 네 가지 있어요.

  • 19
  • 28
  • 37
  • 46

스도쿠 격자로, 가운데 열인 5번째 열을 제외한 모든 칸이 비어 있고 그 열에는 8개의 행이 채워져 있어요.
연속된 두 행마다 킬러 케이지를 이루며 함께 묶인 것으로 표시되어 있어요.
위에서 아래로: 첫 번째 그룹은 값이 1인 칸과 케이지 합이 10임을 나타내는 연필 메모, 값이 9인 칸이에요.
두 번째 그룹은 값이 2인 칸과 연필 메모 10, 값이 8인 칸이에요.
세 번째 그룹은 값이 3인 칸과 연필 메모 10, 값이 7인 칸이에요.
네 번째 그룹은 값이 4인 칸과 연필 메모 10, 값이 6인 칸이에요.
열의 마지막 칸은 비어 있어요.

예시 3: 제약이 있는, 조합이 여러 개인 케이지

합이 10인 두 자리 케이지에서 그 열에 이미 1과 4가 들어 있다면, 가능한 조합은 두 가지예요.

  • 28
  • 37

표준 스도쿠 규칙에 따라 열에 있는 1과 4 때문에 19와 46은 불가능해요.

스도쿠 격자로, 가운데 열인 5번째 열을 제외한 모든 칸이 비어 있고 그 열에는 8개의 행이 채워져 있어요.
첫 번째 행에는 4가, 두 번째 행은 비어 있고, 세 번째 행에는 1이 있어요.
1은 실수를 나타내기 위해 빨간색으로 강조되어 있어요.
그 열의 마지막 6개 행은 각각 두 칸짜리 킬러 케이지를 이루고 있어요.
위에서 아래로: 첫 번째 그룹은 값이 2인 칸과 케이지 합이 10임을 나타내는 연필 메모, 값이 8인 칸이에요.
두 번째 그룹은 값이 3인 칸과 연필 메모 10, 값이 7인 칸이에요.
세 번째 그룹은 빨간색으로 강조된 값 1인 칸과 연필 메모 10, 값이 9인 칸이에요.

직접 해보기

만만한 킬러 스도쿠에 도전해 보고 싶다면, Clover가 만든 이 퍼즐을 풀어봐요. 2021년 6월 21일 Cracking The Cryptic에서 Mark Goodliffe가 소개했어요.

다양한 난이도의 킬러 스도쿠는 여러 신문은 물론 스도쿠 앱, 책, 웹사이트에서도 찾을 수 있어요.

출처

위 스크린샷은 Eric Fox가 만든 퍼즐 제작 도구인 F-Puzzles.com으로 생성했어요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Scala Exercism

킬러 스도쿠 도우미 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Scala 트랙을 연습 문제 95개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.