javascript## 박스 포장
마트에서 장을 보고 박스를 포장하려고 합니다. 박스를 포장하는 데는 폭이 너무 좁습니다. 그렇기에 한 줄로 서 있어야 하고, 들어온 순서대로 한 명씩 나가야 합니다.
뒷사람이 포장을 전부 끝냈어도 앞사람이 끝내지 못하면 기다려야 합니다. 앞사람이 포장을 끝내면, 포장을 마친 뒷사람들과 함께 한 번에 나가게 됩니다.
이때, 통틀어 최대 몇 명이 한꺼번에 나가는지 알 수 있도록 함수를 구현해 주세요.
인자 1: boxes
-> Number 타입을 요소로 갖는, 포장해야 하는 박스가 담긴 배열
1 ≤ 사람 수 ≤ 10,000
1 ≤ 박스 ≤ 10,000
출력
-> Number 타입을 리턴해야 합니다.
주의사항
입출력 예시
const boxes = [5, 1, 4, 6];
const output = paveBox(boxes);
console.log(output); // 3
const boxes2 = [1, 5, 7, 9];
const output2 = paveBox(boxes2);
console.log(output2); // 1
function paveBox(boxes) {
// TODO: 여기에 코드를 작성합니다.
boxes의 첫 요소를 변수에 할당(now)
count, max 변수에 1을 할당
반복문을 이용해 boxes 배열을 순회
반복문(boxes 배열을 순회){
if(요소가 now 이하일 경우) {
count를 1 추가
}
else if (요소가 now 보다 클 경우) {
count를 1로 갱신
now를 해당 요소로 갱신
}
if(max가 count보다 작을경우) {
max의 값을 count의 값으로 갱
}
}
return max;
}
function paveBox(boxes) {
let now = boxes[0];
let count, max = 1;
for(let i = 1; i<boxes.length; i++){
if(boxes[i] <= now) {
count++;
}
else if (boxes[i] > now) {
count = 1;
now = boxes[i];
}
if(max < count) {
max = count;
}
}
return max;
}
function paveBox(boxes) {
let answer = [];
while(boxes.length > 0){
let finishIndex = boxes.findIndex(fn => boxes[0] < fn);
if(finishIndex === -1){
answer.push(boxes.length);
boxes.splice(0, boxes.length
} else {
answer.push(finishIndex);
boxes.splice(0, finishIndex);
}
}
return Math.max(...answer);
}