아... 위 코드에서 확율이 높은 넘을 찾고자 한다면, 사전을 높은 확율순으로 소팅해서 입력하셨을 때, 첫 번 째 출력이 될거 같네요구르트? --- 몇가지 defect를 지적하자면, 높은 확률순으로 sort해서 처리해도 최종 결과가 가장 높은 확률이 되지 못할 가능성이 있습니다. 예를 들자면 abc = 2 de = 200 ab = 5 cde = 5 와 같은 데이터가 있는 경우, abcde를 처리할 때 ab와 abc중 ab를 먼저 처리해버리기 때문에 결국 확률 25가 첫번째로 출력되게 되지만, 실상은 (abc)(de)의 400이 더 높은 확률값을 갖지요. 그리고... DP 혹은 memoization을 적용하면 더 빨라질 겁니다. 입력 str이 큰 경우, 동일한 인자로 foo를 여러번 부르게 될 테니까요.