Leetcode Java Average Waiting Time
업데이트:
문제
코드
class Solution {
public double averageWaitingTime(int[][] customers) {
int time = 0;
double wait = 0;
for (int[] customer : customers) {
time = Math.max(time, customer[0]) + customer[1];
wait += time - customer[0];
}
return wait / customers.length;
}
}
결과
설명
- customers를 이용하여 모든 고객의 평균 대기 시간을 구하는 문제이다.
- customers[i] = [arrivali, timei] 로, 각 값은 아래를 의미한다.
- arrivali는 i번째 고객의 도착 시간을 의미한다.
- timei는 i번째 고객의 주문을 준비하는데 걸리는 시간을 의미한다.
- 고객이 도착하면 요리사에게 바로 주문을 하고, 고객의 도착 순서대로 하나씩 요리한다.
- customers[i] = [arrivali, timei] 로, 각 값은 아래를 의미한다.
- 문제 풀이에 필요한 변수를 정의한다.
- time은 요리를 준비하는 시간을 저장할 변수로, 0으로 초기화한다.
- wait는 요리를 준비하는데 걸리는 시간을 계산할 변수로, 실수형의 0으로 초기화한다.
- customers의 각 값을 customer에 넣고 순차적으로 아래를 수행한다.
- time에 time과 customer[0]의 값 중 큰 시작 시간에 customer[1]의 값인 요리하는데 걸리는 시간을 더해준다.
- wait에 time과 customer[0]의 차잇값인 고객이 도착 후 요리를 받을 때 까지 걸리는 시간을 더해준다.
- 반복이 완료되면 저장된 wait에 customers의 길이를 나누어 평균 대기 시간을 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기