Problem : 멀티탭 스케줄링
유형 : 그리디
문제 해석
- 플러그를 빼는 횟수를 최소화 해라
문제 재해석
- 완전히 OS 스케줄링
belady
알고리즘 구현 문제이다. - 최적의 플러그 교체를 한다.
그리디
하게 접근한다.
해결 전략
- 플러그에 남은 공간이 없을경우 가장 나중에 쓰일 플러그를 교체한다.
설계, 구현
- 전기용품이 사용중인지 확인한다.
- 사용중이 아니라면, 교체한다.
- 만약 플러그에 빈공간이 있으면 그냥 꽂는다.
- 플러그에 빈 공간이 없다면 교체한다.
- 사용중인것 중 가장 오래 쓰이지 않을 전자기기를 찾는다.
- 현재 위치부터, 나중에 언제 등장하는지 확인한다.
디버깅
algoritm
헤더의find
리턴값을 이상하게 사용하고 있었다.iterator
를 리턴 해주니, 포인터로 값에 접근시 당연히 떨어진 거리가 나오지 않는다.
코드
1 |
|
피드백
find
리턴값을 헷갈리다니..STL
복습이 필요해 보인다.- 논리적으로 설계 하는 것은 빨랐으나, 구현하는데 시간이 걸렸다.
- 빠른 구현은 많이 하면 늘게 되어있다. 앞으로 문제 좀 많이 풀자