3월의 퍼즐에 참여해주신 모든 분들께 감사드립니다!
3월에는 정답과 함께 자세한 풀이를 제출해주신 분이 많아 정답자 선정이 어려웠지만,
그 중 정답과 함께 좋은 풀이를 보내주신 박주호님께
HORIZON에서 준비한 선물을 전달드릴 예정입니다.
만약 Alice가 1을 받았다면 Bob이나 Charlie도 1을 받을 수 있으므로 “우리 세 사람의 수가 모두 다르다”라는 말을 할 수가 없다. 따라서 Alice가 받은 수는 2018의 절반인 1009보다 크거나 같아야 한다. 한편 Alice가 받은 수가 2000이라면 Bob과 Charlie가 받은 수를 더하여 18이 되어야 하는데, 두 사람이 모두 9를 가질 수도 있으므로, 이 경우 역시 세 사람의 수가 모두 다르다고 말할 수가 없다.
따라서 Alice가 받은 수는 1009보다 크거나 같으면서 홀수라야 한다. 이 사실은 Bob과 Charlie도 알 수 있다.
만약 Alice가 받은 수가 1011이라면 Bob과 Charlie가 받은 수의 합은 1007이 되는데, 이 경우 Bob의 관점에서 보면, Bob이 1006을 받은 경우 Alice와 Charlie가 받은 수는 1011과 1일 수도 있고 1009와 3일 수도 있다. Bob으로서는 어느 쪽이 될지 전혀 결정할 수 없다. Bob이 1006보다 작은 수를 받은 경우도 마찬가지이며, Alice가 받은 수가 1011보다 큰 경우도 마찬가지이다.
그런데 만약 Alice가 1009를 받고 Bob이 1008을 받았다면, Bob의 관점에서 볼 때 Alice와 Charlie가 받은 수의 합이 1010이므로 Alice가 받은 수가 1009이고 Charlie가 받은 수가 1임을 확신할 수 있다. 또 Alice가 1009, Bob이 1007을 받은 경우에도 Bob은 Alice가 1009를 받고 Charlie가 2를 받았음을 확신할 수 있다.
Charlie의 관점에서도 마찬가지이다. 만약 Charlie가 받은 수가 1이었다면, 문제의 상황은 Alice가 1009를 받고 Bob이 1008을 받은 경우에만 가능하며, 만약 Charlie가 2를 받았다면 문제의 상황은 Alice가 1009를 받고 Bob이 1007을 받은 경우만이 가능하다.
이상의 결과로부터 Alice가 받은 수는 1009임을 알 수 있다. 그러나 Bob과 Charlie가 받은 수가 1008과 1인지, 1007과 2인지는 알 수 없다.
다음은 3월의 정답자로 선정된 박주호님의 해설입니다.
답 : 1009
이번 퍼즐의 제목이 왜 “한 편의 추리소설 같은 과학”인지 알 것 같습니다. 퍼즐을 푸는 내내 추리소설을 읽는 것 같은 기분이 들었어요. 덕분에 추리소설 애독자로서 재미있는 시간을 보낼 수 있었습니다.
추리소설에서 탐정이 범인을 추려내는 방법에는 여러 가지가 있는데요. 그 중 하나가 바로 ‘소거’입니다.
“너희 셋 중 범인이 있다. 그런데 얘도 쟤도 아니야. 따라서 범인은 바로 너다!!” 가 바로 소거를 적용한 예입니다.
추리소설의 특성 상 용의자가 한정된 경우가 많기 때문에(등장인물 소개란에도 없는 사람이 범인이라면 작가는 욕을 먹을 것입니다) 소거는 유용하게 쓰이는 방법 중 하나죠.
소거가 가진 가장 큰 장점이자 특징은 ‘범행의 트릭을 완전히 풀지 못한 상태에서도 범인을 지목할 수 있다는 것’.
A : 우리 세 사람의 수가 모두 다르다는 건 알겠다.
여기서 알 수 있는 첫 번째 단서는 바로 ‘A가 받은 수는 홀수’라는 것입니다.
2018은 짝수이기 때문에 세 개로 나눠놓으면 (짝수, 짝수, 짝수) 또는 (홀수, 홀수, 짝수)의 조합밖에 나올 수가 없습니다. A가 받은 수가 홀수라면? 적어도 B와 C가 서로 다른 수를 받았다는 것쯤은 알 수 있겠죠. 그럼 이제 남은 건 ‘B나 C의 수가 A 자신의 수와 다르다는 건 어떻게 아는가?’
여기에 두 번째 단서가 있습니다.
만약 A가 받은 수가 2015라면 어떨까요? 세 수의 총합이 2018이 되려면 남은 두 수의 조합은 1과 2뿐입니다. 하지만 그런 경우였다면 A가 한 말은 “우리 세 사람의 수가 모두 다르다는 건 알겠다.”가 아니라 “세 수가 무엇인지는 알겠지만 B와 C가 각각 어떤 수를 받았는지는 모르겠다.” 인 것이 더 자연스럽겠죠.
따라서 A의 수는 2013 이하의 홀수라는 것을 알 수 있습니다. 또한 A가 받은 수가 1007 이하일 경우에도 (1007, 1007, 4)와 같이 자신과 같은 수가 존재할 가능성이 생겨버리므로, 다시 정리하면-
A가 받은 수는 1009 이상 2013 이하의 홀수.
A의 말에서 얻을 수 있는 단서는 여기까지. 그리고 B도 그것을 잘 알고있습니다.
B : 아, 알았다. 이제 세 수가 뭔지 알겠다.
추리소설을 보면 괜히 말 한 마디 잘못했다가 범행이 들통나는 경우가 많습니다. Bob이 죄를 지은 것 같지는 않지만 아무튼 그의 말은 또 하나의 단서를 던져줍니다.
B는 A의 수를 어떻게 알 수 있었을까요?
아, 추리소설에선 범인이 누군지 미리 알고 있다고 해도 읽는 재미가 확 떨어지진 않아요. “범인은 박 아무개다. 그렇다면 탐정은 어떻게 범인을 밝혀낼 것인가? 어떤 단서가 갖춰져야만 범인을 잡을 수 있는 것일까?”의 시각에서 읽는 것도 나름대로 재미있거든요.
그러니까 질문을 바꿔봅시다.
B가 A의 수를 알기 위해서는 어떤 조건이 필요한가?
일단 B가 받을 수 있는 수는 최소 1에서 최대 1008까지.
만약 B가 받은 수가 1008이었다면 어떨까요? B 입장에선 A와 C 둘의 수를 합친 값이 1010이 되어야 합니다. (1008, 2), (1007, 3) 등 다양한 경우의 수가 발생합니다만… A가 한 말을 듣고는 A의 수가 1007보다 높은 홀수라는 걸 알게 되죠. 따라서 범행 추정시간을 좁혀가듯, 수의 범위를 좁힌 끝에 A가 1009, C가 1임을 깨닫게 됩니다.
B가 1007을 받았다면? A와 C의 합은 1011이 되므로 A가 1009, C가 2라는 걸 알 수 있습니다.
1006을 받았다면 A와 C의 합은 1012. (1009, 3), (1011, 1)의 두 가지 경우.
1을 받았다면? (1009, 1008), (1011, 1006), …(2013, 4)까지 여러 경우.
그러니까… B가 A의 수를 알기 위해선 B가 받은 수는 1008 또는 1007이 되어야만 하는데 공교롭게도 두 경우 모두 A의 수는 1009가 됩니다. B의 수가 1008인지 1007인지, C의 수가 1인지 2인지 모르더라도 이 대목에서는 A의 수가 1009라는 것을 알 수 있는 것이죠. (이것이 바로 소거…라고 우겨봅니다)
따라서 A가 받은 수는 1009가 됩니다.