어차피 레퍼런스 코드는 공개되어 있으니 포스팅해도 상관없을듯
내 코드가 더 멋지고 컴포넌트화 잘 되어 있다 생각한다.
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;
}
오늘의 😡😡😡 => 🤩🤩🤩
숫자가 있는 배열을 대상으로 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]