等号を求める
10763 ワード
function solution(arr) {
let n = arr.length;
let answer = Array.from({ length: n }, () => 1);
console.log(answer);
for (let i = 0; i < n; i++) {
for (let j = 0; j < n; j++) {
if (arr[j] > arr[i]) answer[i]++;
}
}
return answer;
}
// 장점 : 코드가 짧고 논리가 명확함
// (=나보다 점수 높은 애가 있으면 내 등수가 1씩 밀려난다)
// 단점 : 중첩반복문 -> 시간복잡도 높음
let arr = [87, 89, 92, 100, 76];
console.log(solution(arr));
const solution = (...rest) => {
rest = rest
.map((v, i) => ({
v,
i,
}))
.sort((a, b) => (a.v > b.v ? -1 : 1));
rest[0].rank = 1;
let rank = 1;
for (let i = 1; i < rest.length; i++) {
if (rest[i].v == rest[i - 1].v) {
rank++;
rest[i].rank = rest[i - 1].rank;
} else {
rest[i].rank = ++rank;
}
}
console.log(rest);
return rest.sort((a, b) => (a.i > b.i ? 1 : -1)).map(a => a.rank);
};
// 장점 : 반복문의 계층이 하나기 때문에 시간 복잡도가 낮음
// 단점 : 코드가 길고 이런 식으로는 복잡한 논리를 구성할 때 실수가 발생할 수 있음
const result = solution(87, 92, 92, 100, 100);
console.log(result);
Reference
この問題について(等号を求める), 我々は、より多くの情報をここで見つけました https://velog.io/@woobuntu/등수구하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol