[javascript] 프로그래머스 레벨2 프린터

bjyyyyy·2022년 11월 4일
0

문제보기

function solution(priorities, location) {
    let result = 0;
    let idIndex = [];
  // 고유값을 만들어줌
  for (let i = 0; i < priorities.length; i++) {
    idIndex.push(i);
  }
  while (true) {
    // 대기목록 맨앞에 있는것을 뽑는다
    let cur = priorities.shift();
    // 남은 대기목록에 뽑은 목록보다 큰 값이 있으면
    if (priorities.some((item) => cur < item)) {
      // 대기목록 맨뒤에 다시 넣는다
      priorities.push(cur)
      // 고유값도 일치시키기 위해 맨앞에서 뽑은뒤 맨뒤에 넣는다
      idIndex.push(idIndex.shift());
    } else {
      // 큰 값이 없을때 고유값도 맨앞부터 빼주고 location과 일치하는 숫자가 나올때 result를 return한다
      result++;
      curIndex = idIndex.shift();
      if (curIndex === location) {
        return result;
      }
    }
  }
}

0개의 댓글