평균 대기 시간

PHPz
풀어 주다: 2024-07-18 05:08:19
원래의
516명이 탐색했습니다.

Average Waiting Time

1701. 평균 대기시간

중간

셰프가 1인인 레스토랑이 있습니다. 고객[i] = [도착i, 시간i]:

인 고객 배열이 제공됩니다.
  • 도착i는 i번째 고객의 도착 시간입니다. 도착시간이 내림차순으로 정렬되어 있습니다.
  • 시간i은 i번째 고객의 주문을 준비하는 데 필요한 시간입니다.

고객이 도착하면 셰프에게 주문을 하고, 셰프는 자리가 나면 요리를 시작합니다. 고객은 요리사가 주문 준비를 마칠 때까지 기다립니다. 셰프는 한 번에 한 명 이상의 고객을 위한 음식을 준비하지 않습니다. 셰프는 입력된 순서대로고객을 위해 음식을 준비합니다.

전체 고객의 평균대기 시간을 반환합니다. 실제 답변에서 10-5 이내의 답이 승인된 것으로 간주됩니다.

예 1:

  • 입력: 고객 = [[1,2],[2,5],[4,3]]
  • 출력: 5.00000
  • 설명: 1) 첫 번째 손님이 1시에 도착하고, 요리사가 주문을 받아 1시에 바로 준비를 시작하고, 3시에 끝나므로 첫 번째 손님의 대기 시간은 3 - 1 = 2입니다. 2) 두 번째 손님은 2시에 도착하고, 요리사는 3시에 주문을 받아 준비를 시작하고, 8시에 끝나므로 두 번째 손님의 대기 시간은 8 - 2 = 6입니다. 3) 세 번째 손님은 4시에 도착하고, 8시에 셰프가 주문을 받아 준비를 시작하고, 11시에 끝나므로 세 번째 손님의 대기 시간은 11 - 4 = 7입니다.

그러므로 평균 대기 시간 = (2 + 6 + 7) / 3 = 5.

예 2:

  • 입력: 고객 = [[5,2],[5,4],[10,3],[20,1]]
  • 출력: 3.25000
  • 설명: 1) 첫 번째 고객이 5시에 도착하고, 셰프가 주문을 받아 5시에 바로 준비를 시작하고, 7시에 끝나므로 첫 번째 고객의 대기 시간은 7 - 5 = 2입니다. 2) 두 번째 손님은 5시에 도착하고, 요리사는 7시에 주문을 받아 준비를 시작하고, 11시에 끝나므로 두 번째 손님의 대기 시간은 11 - 5 = 6입니다. 3) 세 번째 고객은 10시에 도착하고, 셰프는 11시에 주문을 받아 준비를 시작하고, 14시에 완료하므로 세 번째 고객의 대기 시간은 14 - 10 = 4입니다. 4) 네 번째 손님은 20시에 도착하고, 20시에 셰프가 주문을 받아 바로 요리를 시작하고, 21시에 끝나므로 네 번째 손님의 대기 시간은 21 - 20 = 1입니다.

그러므로 평균 대기 시간 = (2 + 6 + 4 + 1) / 4 = 3.25.

제약조건:

  • 1 5
  • 1 i, 시간i<= 104
  • 도착i <=도착i+1

해결책:

class Solution {

    /**
     * @param Integer[][] $customers
     * @return Float
     */
    function averageWaitingTime($customers) {
        $currentTime = 0;
        $totalWaitingTime = 0;
        $n = count($customers);

        foreach ($customers as $customer) {
            $arrival = $customer[0];
            $time = $customer[1];

            if ($currentTime < $arrival) {
                $currentTime = $arrival;
            }

            $currentTime += $time;
            $totalWaitingTime += ($currentTime - $arrival);
        }

        return $totalWaitingTime / $n;
    }
}
로그인 후 복사

연락처 링크

  • 링크드인
  • 깃허브

위 내용은 평균 대기 시간의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!