우선은 L이 고정된 경우에 대해 생각해보자. 책의 순서가 정해져 있으므로 전형적인 동적 계획법 문제가 된다.를 1~i번째의 책을 꽂을 때 책장 높이의 최소값이라 정의하면,의 점화식을 얻는다. 이 때의 시간복잡도는 이다. 하지만 시간복잡도를 으로 줄일 수 있다. 가 단조증가하므로고정된 값에 대해 가 같다면 가장 작은 에 대해서만 보면 된다.즉, 에서부터 앞으로 오면서 의 값을 더 크게 만드는 에 대해 에 대해서만 봐도 된다. 값을 더 크게 만든다는 것은 값이 까지의 자기 뒤의 모든 것보다 큼을의미하므로 그러한 지점을 저장하기 위해 스택을 이용한다.에 대해 스택의 위에서부터 보면서 현재보다 작은 것들을 다 빼내고 를 집어넣는다.스택을 관리하면서 스택에 든 에 대해 바로 다음의 에 대해서는 알맞은 값으로 갱신 해주고 나머지값은 무한대로 저장한다.인덱스 트리를 이용하여 를 만족하는 구간에서의 최소값을 구하고 구간 가장 앞의 j에서도 최소가 될 수 있으므로 비교해서 최소값을 구한다.이제 고정된 에 대해 최소의 를 구하는 문제는 해결된다.본 문제는 과 중 큰 값을 최소화하는 문제인데 이 증가함에 따라 최소의 가 단조감소하므로 과 의 최대값은 쭉 감소하다가 최소가 되는 지점부터 다시 증가하므로 이분검색을 사용하여 최소가 되는 점을 찾을 수 있다.이런 식으로 하면 총 시간복잡도 로 해결