프로그래머스 - 프린터
1262 단어 JavaScriptlevel2JavaScript
문제
현재 대기목록에 있는 문서의 중요도가 순서대로 담긴 배열 priorities와 내가 인쇄를 요청한 문서가 현재 대기목록의 어떤 위치에 있는지를 알려주는 location이 매개변수로 주어질 때, 내가 인쇄를 요청한 문서가 몇 번째로 인쇄되는지 return 하도록 solution 함수를 작성해주세요.
문제 설명
priorities배열에서 처음 값과 최대값을 비교하여 처음 값이 최대값보다 크거나 같은 경우 카운트하고 아닌경우 배열에서 가장뒤에 값을 위치 시킨다.
의사코드
- count, max 변수와 priorities배열을 복사하여 저장할 변수 arr을 생성한다.
- location이 0보다 작을때까지 while문 루프를 돈다
- 루프문 안에서 max값을 구해주고 arr 배열의 첫번째요소가 max보다 작은지 체크한다.
- 만약 작다면 그 값을 배열에서 빼주고 다시 배열의 뒤에 추가해준다 이때 location이 0인지 체크 하고 0이라면 그 값을 arr길이 -1로 설정해준다 아니라면 location에 1을 빼준다.
- 만약 arr의 첫번째 값이 max보다 크다면 첫번째 값을 배열에서 빼주고 count++, location--해준다.
- return count
Solution
function solution(priorities, location) { let max; let count = 0 let arr = priorities.slice() while(location >= 0){ max = Math.max(...arr) if(arr[0] < max){ if(location===0){ location = arr.length-1 }else{ location-- } arr.push(arr.shift()) }else{ arr.shift() location-- count+=1 } } return count }
Author And Source
이 문제에 관하여(프로그래머스 - 프린터), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@lsh__97/프로그래머스-프린터저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)