영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score
가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요.
score
[0], score
[1] ≤ 100score
의 길이 ≤ 10score
의 원소 길이는 2입니다.score
는 중복된 원소를 갖지 않습니다.score | result |
---|---|
[[80, 70], [90, 50], [40, 70], [50, 80]] | [1, 2, 4, 3] |
[[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100, 100], [10, 30]] | [4, 4, 6, 2, 2, 1, 7] |
function solution(scores) {
averageArr = scores.map((score) => score.reduce((a, b) => (a + b) / 2))
sortAverageArr = [...averageArr].sort((a, b) => b - a)
const rank = []
for (let i = 0; i < averageArr.length; i++) {
rank.push(sortAverageArr.indexOf(averageArr[i]) + 1)
}
return rank
}
function solution(score) {
return score.map((el) => {
return (
score.filter((v) => (v[0] + v[1]) / 2 > (el[0] + el[1]) / 2).length + 1
);
});
}
1시간 가까이 걸린 것 같다. indexOf를 생각해내지 못해서 오래걸리기도 했고, 한 번 안 풀릴 때는 계속 안 풀리는 경우가 많기 때문에 한 번 주의를 환기시킨 다음에 다시 도전하는 게 효율적일 때도 있으니 다음부터는 그 방법도 사용해보자.