[프로그래머스] 택배상자 (JS)

hhkim·2023년 10월 3일
0

Algorithm - JavaScript

목록 보기
149/188
post-thumbnail

풀이 과정

  1. order의 상자를 모두 메인 스택에 담기
  2. order 각 상자에 대해 반복
  3. 메인 요소 마지막 요소가 현재 요소보다 작은 동안 보조 스택에 담기
    현재 요소가 메인 또는 보조 스택의 마지막 요소이면 pop하고 결과 +1
    둘다 만족하지 못하면 반복 빠져나오기

코드

function solution(order) {
  const mainCont = Array(order.length)
    .fill(0)
    .map((_, i) => order.length - i);
  const tempCont = [];
  let result = 0;
  for (const box of order) {
    while (mainCont.at(-1) < box) tempCont.push(mainCont.pop());
    if (mainCont.at(-1) === box) {
      mainCont.pop();
      ++result;
    } else if (tempCont.at(-1) === box) {
      tempCont.pop();
      ++result;
    } else {
      break;
    }
  }
  return result;
}

🦾

갑자기 쉬운 문제가 나와서 20분도 안 걸려서 풀고 뿌듯해했다.

0개의 댓글