본문 바로가기
Algorithm

Queue 박스 포장 문제

by 개발자 염상진 2022. 10. 12.

 

문제

 

 

 

풀이

 

문제를 생각해보면 박스 포장 후 나가는 사람들의 자료구조는 Queue를 사용하고 있음을 알 수 있습니다.

 

첫번째 사람의 박스 갯수와 뒤의 사람 박스 갯수를 비교해서 Max값을 구하면 코드를 작성하는 건 쉽습니다.

 

Javascript 코드

function paveBox(boxes) {
  let ans = [];

  while(boxes.length > 0){
    let findIdx = boxes.findIndex(item=>boxes[0] < item);

    if(findIdx === -1){
        ans.push(boxes.length);
        boxes.splice(0);
    }else{
        ans.push(findIdx)
        boxes.splice(0, findIdx)
    }
  }
  return Math.max(...ans);
}
  • 특정 조건을 만족하는 Index를 찾기 위해 Array.prototype.findIndx() 함수를 사용합니다.
  • 조건을 만족하지 못하면 -1을 반환합니다.
  • ans 배열에 검색된 Index를 push 해줍니다.
  • 인덱스를 찾으면 Array.prototype.splice() 함수로 배열을 잘라줍니다.
  • ans 배열 중 Math.max() 함수로 최대값을 구해서 반환합니다.

 


 

🚀️ 도움이 되셨다면 구독좋아요 부탁드립니다 👍️

댓글