i-1 번째 라면가게까지 최적으로 라면을 모두 샀다고 하자. i번째부터 세가게가 x1, x2, x3 만큼 라면을 팔 때
x2 < x1 이면 x1 은 x1-x2 만큼은 혼자서 처리해야한다. 먼저 처리해놓으면 x1 <= x2 를 만족하고 아래 조건 중 하나에 들어간다. 만약 이 과정에서 x1==0 이 된다면 i 번째 라면도 최적으로 샀으므로 증명완료이다. 아래에서도 이와 비슷한 전략을 사용한다.
x3 <= x1 <= x2 식이라면 x1 은 x1-x3 만큼 x3 과 관계없이 처리해야한다. 이때 x2 도 같이 구매하는게 이득이다. 이 과정에서 x1 을 모두 구매하거나 아래 조건들 중에 들어간다.
x1 <= x3 <= x2 식이라면 x2 은 x2-x3 만큼 x3 과 관계없이 처리해야한다. 이때 x1 와 같이 구매하는게 이득이다. 이 과정에서 x1 을 모두 구매하거나 아래 조건에 들어간다.
x1 <= x2 <= x3 에서는 Greedy 전략이 통한다. x1 만큼 b+c+c 를 지불하면 최적으로 구매하게 된다.
댓글남기기