조건이 두개가 있다. 1. 가장 긴 통나무를 최소로 만들어야한다. 2. 최대 크기만 같다면 처음 자르는 위치가 가장 빨라야한다.
흔한 Parametric Search 풀이처럼 통나무의 최대 크기을 매개변수로 하여 이를 만족하도록 최소한으로 잘라내면 되겠다는 건 쉽게 떠올릴 수 있다. 최소한으로 자른 횟수가 C 를 넘거나 이를 만족하도록 자르는게 불가능한 경우 모두 매개변수를 증가시켜야 되므로 구현도 간단해 보인다. 하지만 문제가 두개 발생한다.
마지막에 자른 위치와 끝위치가 최대 크기를 넘을 수도 있다.
최대 자르는 횟수보다 작게 잘랐다면 더 자를 수도 있다.
이를 간단하게 해결하는 방법은 뒤에서부터 자르는 것이다. 추가로 자르는 위치를 마지막에 자르는 위치라도 해도 되기 때문이다.
댓글남기기