카페 확장

Lv. 2

Solution

export function expandCafe(menu: number[], order: number[], k: number) {
  let answer = 1;
 
  let currentTime = 0;
  const queue: number[] = [];
  for (let i = 0; i < order.length; i++) {
    const lastOrder =
      queue.length === 0 ? currentTime : Math.max(currentTime, queue[queue.length - 1]);
    queue.push(lastOrder + menu[order[i]]);
    while (0 < queue.length && queue[0] <= currentTime) {
      queue.shift();
    }
    currentTime += k;
    answer = Math.max(answer, queue.length);
  }
 
  return answer;
}