엘리베이터를 시뮬레이션하려고합니다. 항상 한 번에 한 번만 주문하여 매우 간단하게 시작한 다음 대기열 형식으로 엘리베이터에 메모리를 추가하여 바닥이 눌린 순서대로 바닥을 이동하도록합니다. 분명히 최선의 방법은 아닙니다.
그래서 현재 저는 매우 간단하고 "짧은 시야"논리를 사용하고 있습니다. 즉, 현재 층에서 가장 가까운 층을 찾아서 다음 목적지로 설정하고 더 이상 층이 목록에 없을 때까지 반복합니다.
그러나 이것은 항상 작동하지는 않습니다. 예를 들어 엘리베이터가 5 층 건물의 3 층에 있었고 가장 짧은 경로는 4,5,2 주문이 2> 4-> 5 일 것인데 4 층이 필요하지만이 논리를 사용합니다. 코드에 따라 5를 지불하는 4-> 5-> 2의 선택 가능성은 동일합니다.
가장 짧은 경로를 찾고 엘리베이터를 더 효율적으로 만드는 방법은 무엇입니까?