[프로그래머스#JS] 프린터

dongwon·2021년 5월 2일
0

프로그래머스-Level 2

목록 보기
20/33

문제

프린터 https://programmers.co.kr/learn/courses/30/lessons/42587

해결

  1. 인덱스에 우선순위 정보를 저장
  2. shiftpush를 이용해 queue를 구현.
  3. some 메서드를 이용해 첫 번째 인덱스의 우선순위 보다 높은 우선순위 탐색.
  4. 최종 순위에서 우선순위를 저장한 인덱스를 이용해 location의 정보를 얻을 수 있습니다.

코드

function solution(priorities, location) {
  let orders = priorities.map((v, i) => {
    return {
      index: i,
      order: v,
    };
  });

  const stack = [];

  while (true) {
    if (orders.length === 0) break;
    const { order, index } = orders.shift();

    if (orders.some((el) => order < el.order)) {
      orders.push({ order, index });
    } else {
      stack.push({ order, index });
    }
  }
  return stack.findIndex((el) => el.index === location) + 1;
}
profile
데이원컴퍼니 프론트엔드 개발자입니다.

0개의 댓글