[Javascript] 프로그래머스 스택/큐:프린터

이두팔·2021년 1월 18일
0

프로그래머스

목록 보기
3/9

링크>>>

function solution(priorities, location) {
  let answer = 0;
  let queue = priorities.map((v, i) => {
    return { location: i === location, value: v }
  });

  while (queue.length) {
    // 맨 앞의 값을 가져온다.
    let current = queue.shift();

    // 비교해서 가장 큰 값이 아니면 제일 뒤로 보낸다.
    if (queue.some(v => v.value > current.value)) {
      queue.push(current);
    } else {
      // current가 가장 높은 우선순위의 값이라면 answer++
      answer++;
      // 원하는 문서라면 리턴한다.
      if (current.location) return answer;
    }
  }
}
profile
Software Engineer

0개의 댓글