마스터마인드는 두 사람이 하는 코드 추리 게임이다. 출제자는 색깔 말 n개를 한 줄로 놓아 코드를 만들고 상대에게 보이지 않게 숨긴다. 같은 색을 여러 번 써도 된다.
추리자는 코드를 알아내려고 길이가 n인 추측을 반복해서 내놓는다. 추측이 한 번 끝날 때마다 출제자는 두 수 r과 s를 알려 준다.
- r은 색과 위치가 모두 같은 말의 개수다.
- s는 나머지 말 중에서 색은 같지만 위치가 다른 말의 개수다.
코드의 말과 추측의 말은 한 번 짝지어지면 다른 말과 다시 짝지어지지 않는다. 예를 들어 코드가 BACC이고 추측이 CABB이면 둘째 자리의 A가 색과 위치를 모두 맞혔으므로 r은 1이고, 남은 세 자리에서 B 하나와 C 하나만 색이 같으므로 s는 2다. 추측에는 B가 둘이지만 코드에는 B가 하나뿐이라 하나만 짝지어진다.
코드와 추측이 주어지면 r과 s를 구하라.