Lv.2 프린터
🤖문제
👍 2022년 1월 29일
내 코드
<script>
function solution(priorities, location) {
let answer = 0;
let prioritiesArr = priorities.map((v,i) => [i,v]);
let sequence = [];
while (true) {
const currPrint = prioritiesArr.shift();
if (prioritiesArr.some((value) => value[1] > currPrint[1])) prioritiesArr.push(currPrint);
else {
sequence.push(currPrint);
for (let j=0; j< sequence.length; j++) {
if (sequence[j][0] === location) {
return answer = j+1;
}
}
}
}
}
</script>
더 효율적인 코드
<script>
function solution(priorities, location) {
var answer = 0;
const pri = priorities.map((a,i) => [a,i]);
const arr = [];
for(let i = 0; i < pri.length ;){
const temp = pri.shift();
if( pri.some((a)=> temp[0]< a[0])) pri.push(temp);
else {
arr.push(temp);
if(arr[answer][1] == location) break;
else answer ++;
}
}
return answer+1;
}
</script>
풀릴 듯 안풀리고 계속 시간초과나서 머리 반으로 부서질 뻔 한 문제🙂
- 내가 요청한 문서의 고유 인덱스 값을 알아야 하는데 그걸 어떻게 처리해야할지 몰라서 삽질했던게 너무 힘들었다... map 쓰면 이렇게 간단했을 것을...
- 그리고 중간에 some쓴 곳도 원래는 문서의 max값 구해서 그거랑 일치하는지 구하려고 했는데 2차원 배열에서 특정 열의 최대값을 어떻게 구할까... 고민하다가 '아 이건 아니다'싶어서 질문하기에서 도움받았다....
- 밑에 코드 보면 첫 번째 else부분에서 나와 많이 차이가 나는 것을 알 수 있다. sequence는 빈 배열로 시작해서 원소가 하나씩 추가되니까 answer 변수를 따로 둬서 1씩 증가하게 했다. 나는 sequence를 for문 굳이 돌아서 더 비효율적이다...
Author And Source
이 문제에 관하여(Lv.2 프린터), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@youjinee98/Lv.2-프린터저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)