코딩테스트 연습
코딩테스트 입문
등수 매기기
두 과목에 대한 배열이 주어지고 둘의 평균을 구해 등수를 매겨라.
function solution(score) {
var answer = [];
let save = [];
for (let i = 0; i < score.length; i++) {
save.push([(score[i][0] + score[i][1]) / 2, i]);
}
save.sort((a, b) => a[0] - b[0]).reverse();
let order = 1;
let cnt = 0;
for (let i = 0; i < score.length; i++) {
answer[save[i][1]] = order;
if (i < score.length - 1 && save[i][0] === save[i + 1][0]) {
cnt++;
continue;
}
order += 1 + cnt;
cnt = 0;
}
return answer;
}
let list = [
[1, 3],
[3, 1],
[3, 1],
[2, 3],
[3, 2],
[1, 2],
[0, 0],
];
solution(list);
function solution(score) {
let avg = score.map((a) => (a[0] + a[1]) / 2);
let sorted = avg.slice().sort((a, b) => b - a);
//slice()를 통해 avg를 추출하여 만든 새로운 객체에 대해 sort를 적용함
//let sorted =avg.sort((a, b) => b - a)는 avg와 sorted 모두 정렬된 값 저장됨
return avg.map((elem) => sorted.indexOf(elem) + 1);
}