반응형
알고리즘 실기 시험 시간에 나온 문제인데 4시간안에 5문제를 풀어야하는데
이문제 생각이 잘 나지 않아서 못풀었네요.
푸는 방법은 탐욕기법을 이용하여 풉니다.(푸는방법 보지말고 풀어보세요 그게 도움이 될듯)
먼저, profit이 높은것으로 먼저 정렬을 합니다.
위의 예를 가지고 하면
job5 job2 job1 job4 job3
profit 16 12 10 7 4
deadline 2 13 4 2 1
profit 16 12 10 7 4
deadline 2 13 4 2 1
이렇게 되겠죠 .
그럼 작업을 하나씩 넣습니다 정렬한 순서대로
day | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
jobnum | job5 |
day | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
jobnum | job5 | job2 |
day | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
jobnum | job5 | job1 | job2 |
job1를 넣습니다.
day | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
jobnum | job4 | job5 | job1 | job2 |
day | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
jobnum | job4 | job5 | job1 | job2 |
마지막으로 job3를 넣어야하는데 넣을곳이 없기때문에 job3는 작업을 하지 않습니다. 그래서
job4->job5->job1->job2
이 순서대로 실행을 하게 됩니다.
푸는방법만 알면
짜는것은 금방 할듯하네요
반응형
'프로그래밍 이야기 > 알고리즘' 카테고리의 다른 글
알고리즘/ Permutation cycle (1) | 2011.04.27 |
---|