[Javascript] 프로그래머스 Level 2 _ 프린터
👇🏻

👇🏻
시행착오
( + 코드를 작성하면서든 생각들.)
✏️ 제출 코드
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function solution(priorities, loc) { | |
let cnt = 0; | |
let max = Math.max.apply(null, priorities); | |
while(priorities.length){ | |
if(priorities[0] === max){ | |
cnt += 1; | |
if(loc == 0){ | |
return cnt; | |
} | |
priorities.shift(); | |
max = Math.max.apply(null, priorities); | |
} else { | |
priorities.push(priorities.shift()); | |
} | |
(loc == 0)? loc = priorities.length -1 : loc-=1; | |
} | |
} |
큐 프린터를 구현하는 문제였다!
처음에는 최댓 값을 기준으로 두 덩이로 나눠서 다시 이어 붙이고를 반복해야하나? 생각해서 복잡했었다 ㅠㅠ
하지만 단순하게 해당 타겟이 몇번째로 빠져나가는지만 구하면 되기 때문에
① 맨 앞의 요소가 max라면 shift()를 해준 뒤 빠져나간 순서를 카운트 해주고,
② 아니라면 shift()와 push()를 함께 사용해 다시 뒤에 이어 붙여주기를 반복하는 과정을 구현했다.
그리고 ① + 조건으로
배열의 남은 요소 중 해당 타겟이 max라면 카운트를 리턴하는 조건을 추가했다.
⚠️ 아래 내용은 모두 개인적인 참고 / 기록을 위한 용도입니다. 참고해주시고 편안하게 봐주세요 :) ⚠️
*** 혹시라도 잘못된 정보가 있다면 언제든지 알려주시면 감사하겠습니다 ! ***
'Programmers > Level 2' 카테고리의 다른 글
[Javascript] 프로그래머스 : 기능 개발 (0) | 2021.08.22 |
---|---|
[Javascript] 프로그래머스 : 올바른 괄호 (0) | 2021.08.22 |
[Javascript] 프로그래머스 : 행렬의 곱셈 (0) | 2021.08.20 |
[Javascript] 프로그래머스 : 최솟값 만들기 (0) | 2021.08.18 |
[Javascript] 프로그래머스 : 최댓값과 최솟값 (0) | 2021.08.18 |