Naive 하게 풀면, 매번 각 순서를 정렬하여 답을 구할 수 있다. 이러한 방법은 시간 복잡도 차원에서 큰 부담이 된다. 대신에, 논리적으로 생각했을 때, 어떤 행동을 취할 때 상자에 계속 존재하는 사탕들을 매번 새롭게 정렬해 줄 필요는 없다. 이를 구현하기 위해, Segment Tree를 활용하면, 각 사탕의 개수를 저장하여, 구간에 존재하는 사탕의 개수를 통해, x번째 순위의 사탕을 찾을 수 있을 것이다.
Segment Tree를 이용해서, 사탕의 맛이 1인 것부터 1,000,000인 것까지의 각 개수를 저장한다
사탕의 맛 종류를 L = 1,000,000이라고 할 때, 시간 복잡도는 O(NlogL)이다.