반응형
1. Problem Definition
- N개의 데이터 아이템이 있다.
- 각 데이터 Di는 (Li ,Fi)로 이루어져 있다. Li은 데이터의 사이즈 , Fi은 사용 빈도수이다.
- 테이프에는 데이터를 한번만 쓸 수 있고, 읽는것은 무제한이다.
- 데이터를 읽으러 가는 모든 때의 시작점은 맨 처음이다. (데이터를 읽고나서 매번 맨 앞으로 돌아간다)
직관적으로 보면 크키가 클수록 뒤에 있고 자주 쓰는 것을 앞에 배치하면 좋겠다는 생각이든다.
하지만 자주 쓰는데 크기가 너무 크다면..? 이라는 애매한 상황이 생긴다,
2. Solution
F/L 순서대로 저장하면 된다. (greedy)
Proof
기대값은 빈도수 * 맨 앞에서 해당 데이터 까지의 L 라고 정의할 수 있다.
귀류법으로 증명을 해보겠다.
Assume : Fi / Li < Fi+1 / Li+1
데이터가 1,2,...i, i+1 의 순서로 저장됐을때를 Case1이라고 하고
1,2,...i+1 , i 의 순서로 데이터가 저장됐을 떄는 Case2 라고하자.
Case1이 더 저렴하므로 가정은 모순된다.
반응형
'학부 내용 정리 > [ 2-2 ] 알고리즘' 카테고리의 다른 글
[ 알고리즘 ] Median Problem (0) | 2022.10.17 |
---|---|
[ 알고리즘 ] Divide and Conquer : Quick Sort (0) | 2022.10.15 |
[ 알고리즘 ] Deadline Scheduling (0) | 2022.10.14 |
[ 알고리즘 ] 최단거리 : Dijkstra Algorithm (0) | 2022.10.12 |
[ 알고리즘 ] MST(2) : Kruskal Algorithm (0) | 2022.10.11 |