๐ฅ Algorithm/Programmers
[ํ๋ก๊ทธ๋๋จธ์ค Lv.2] ํ๋ฆฐํฐ (js)
Lennon
2021. 11. 10. 22:30
728x90
๋ฐ์ํ
https://programmers.co.kr/learn/courses/30/lessons/42587
function solution(priorities, location) {
let result = [];
let prior = [];
let max = 0;
let answer;
for(let i = 0; i < priorities.length; i++){
prior.push({idx : i, value : priorities[i]});
}
for(let j = 1; j < prior.length; j++){
for(let i = 0; i < prior.length; i++){
max = Math.max(prior[i].value, max);
}
if(max === prior[0].value){
result.push(prior[0]);
prior.shift();
j = 0;
}
else if(prior[0].value < prior[j].value){
prior.push(prior[0]);
prior.shift();
j = 0;
}
max = 0;
}
const ans = [...result, ...prior].filter((a,b) => {
if(a.value === priorities[location] && a.idx === location){
answer = b;
}
});
return answer+1;
}
์ธ๋ฑ์ค๋ ๊ธฐ๋กํด์ผํ๊ณ , ์์๋ ์ ๋๋ก ๊ตฌํด์ผ๋ผ์ ๊ฐ์ฒด๋ก ํ์๋ค.
๊ฐ์ฅ ํฐ ๊ฐ์ ์ฐพ์ ํ ์์์ ํ๋ ์ฉ shiftํ๋ฉฐ ๋ค์ ๊ฐ์ ๋น๊ตํด result ๋ฐฐ์ด์ ์ฑ์๋๊ฐ๋ค.
๊ณ์ j=0์ผ๋ก ์ด๋ ํ ์ต๋๊ฐ์ ๊ตฌํ ํ ์ฒ์๋ถํฐ ๋ฐ๋ณตํด ํจ์จ์ ์ธ ์ฝ๋๋ ์๋ ๊ฒ ๊ฐ๋ค.
(์ต๋๊ฐ 100๊ฐ ์ดํ๋ผ์ ๊ทธ๋ฅ ํ์)
๋ค์์ ๋ ์ข์ ์ฝ๋ ๋ฐ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐํด๋ด์ผ๊ฒ ๋ค.
728x90
๋ฐ์ํ