๐ฅ Algorithm/Programmers
[ํ๋ก๊ทธ๋๋จธ์ค] ์ํด๋ฆฌ ์ฑ๋ฆฐ์ง 6์ฃผ์ฐจ (javascript ํ์ด)
Lennon
2021. 9. 25. 17:42
728x90
๋ฐ์ํ
https://programmers.co.kr/learn/courses/30/lessons/85002?language=javascript
์ฝ๋ฉํ ์คํธ ์ฐ์ต - 6์ฃผ์ฐจ_๋ณต์ ์ ๋ ฌํ๊ธฐ
๋ณต์ ์ ์๋ค์ ๋ชธ๋ฌด๊ฒ weights์, ๋ณต์ ์ ์๋ค์ ์ ์ ์ ๋ํ๋ด๋ head2head๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ณต์ ์ ์๋ค์ ๋ฒํธ๋ฅผ ๋ค์๊ณผ ๊ฐ์ ์์๋ก ์ ๋ ฌํ ํ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์
programmers.co.kr
function solution(weights, head2head) {
let winCount = 0;
let loseCount = 0;
let heavyCount = 0;
let answer = [];
for(let i = 0; i < head2head.length; i++){
for(let j = 0; j < head2head[i].length; j++){
let res = weights[i];
if(head2head[i][j] === "W"){
winCount++;
if(res < weights[j]) heavyCount++;
}
else if(head2head[i][j] === "L") loseCount++;
}
if(loseCount+winCount === 0){
answer.push({W : 0, Up : heavyCount, Weight: weights[i], Number : i+1});
}
else answer.push({W : winCount / (loseCount+winCount), Up : heavyCount, Weight: weights[i], Number : i+1});
winCount = 0;
heavyCount = 0;
loseCount = 0;
}
answer.sort((a,b) => {
if(b.W !== a.W) return b.W - a.W;
else if(b.W === a.W && b.Up === a.Up && a.Weight === b.Wight) return a.Weight - b.Weight;
else if(b.W === a.W && b.Up === a.Up ) return b.Weight - a.Weight;
else if(b.W === a.W) return b.Up - a.Up;
})
// console.log(answer);
return answer.reduce((cur,arr) => {
return cur.concat(arr.Number);
}, []);
}
์ ๋ ฌ์ด ์ค์ํ ๋ฌธ์ ์๋ค!
728x90
๋ฐ์ํ