BEB 07 3-5

Donghun Seol·2022년 9월 30일
0

코드스테이츠 BEB 07

목록 보기
13/39

프린터

어차피 레퍼런스 코드는 공개되어 있으니 포스팅해도 상관없을듯

내 코드가 더 멋지고 컴포넌트화 잘 되어 있다 생각한다.

function queuePrinter(bufferSize, capacities, documents) {
  const q = Array(bufferSize).fill(0);
  const nowCapacity = (q) => q.reduce((acc, cur) => acc + cur, 0);

  let time = 0;

  while (documents.length > 0) {
    time++; // 시간은 무조건 1초씩 증가
    q.shift(); // 큐의 문서도 무조건 한칸씩 이동한다.
    if (nowCapacity(q) + documents[0] > capacities) {
      // q의 캐퍼시티가 안되면 빈공간을 의미하는 0을 푸쉬하면됨.
      q.push(0);
    } else {
      // 캐파가 되면 문서를 푸쉬한다.
      q.push(documents.shift());
    }
  }
  // q의 남은 문서가 없도롤 큐를 비워줘야 된다.
  while (nowCapacity(q) !== 0) {
    q.shift();
    time++;
  }
  return time;
}

Array.prototype.sort(callback)

오늘의 😡😡😡 => 🤩🤩🤩
숫자가 있는 배열을 대상으로 sort()시 콜백함수를 넘겨주지 않으면 사전식으로 정렬된다.
sort()는 원본을 변화시키는 메서드인건 이미 알고 있제?

코플릿 풀다가 이거 때문에 두시간동안 고민함..
당연히 숫자만 담긴 배열에 sort() 호출하면 크기대로 정렬되는줄 알았는데.... 이젠 절대 안까먹을듯.

arr = [1,3,11,15,22,100]
arr.sort() // arr = [1, 100, 11, 15, 22, 3];

arr.sort((a,b) => a - b) // arr = [1, 3, 11, 15, 22, 100]
profile
I'm going from failure to failure without losing enthusiasm

0개의 댓글