가로 3칸, 세로 8칸, 모두 24개의 조각으로 이루어진 초콜릿이 있다. 당신은 24명의 아이로 이루어진 학급을 맡은 선생님이다. 초콜릿이 먹고 싶은아이들은 당신에게 빨리 그것을 24개의 조각으로 나누어서 하나씩 달라고성화를 부리고 있다. 이 초콜릿을 잘라서 24개의 조각으로 나누는 방법은여러 가지가 있다. 길게 세로로 한 번씩 쪼갠 다음 각 조각을 가로로 쪼갤수 있고, 먼저 가로로 쪼갠 다음 세로로 쪼개는 방법을 취할 수도 있다. 혹은 가로와 세로로 쪼개는 방향을 혼합해서 다소 복잡하게 나누어갈 수도 있다. 성화를 부리는 아이들 앞에서 당신은 잠시 생각에 잠겼다.이 초콜릿을 가장 빠르게 24개의 조각으로 나누는 길은 무엇일까? 그 방법을 찾아보기 바란다. 잘라낸 초콜릿을 겹쳐서 한꺼번에 쪼개거나 하는 방법은 허용되지 않는다.
-- 누워서 읽는 퍼즐북 중에서
초콜릿을 어떤 방법으로 쪼개도 전체적으로 쪼개야 하는 횟수는 항상 일정하다. 그 횟수는 반드시 전체 조각의 수에서 1을 뺀 값이다. 즉, 23.
처음 이 문제를 접했을 때 매우 당황했다. 분량을 채우기 위한 꼼수가 아닐까 생각했다.
하지만 이 문제의 의도를 알면서 생각이 달라졌다. 의도는 '문제의 원리를 얼마나 빨리 깨닫고 수긍하느냐'다.
...
프레임워크에서 작업하는데 문제가 발생했다. 내가 생각하기에 가장 깔끔할 거 같은 방법을 찾고 있었다. 몇 시간씩 검색하고 시도해도 해결되지 않았다. 방법이 없는건 아니었다. 그런데 더 좋은 방법이 있다고 생각했다. 한참 지나서야 다른 방법으로 해결했다.
초콜릿 문제가 떠올랐다.
너무 늘어지는 문제가 생기면 이 것은 '초콜릿 문제'가 아닌가 생각해본다.
내가 문제를 정확히 이해하고 있는지 다시 한 번 고민해봐야 할 때다.