티스토리 뷰
function solution(score) {
let answer = [];
let avgArray = [];
score.forEach( item => {
item = (item[0] + item[1]) / 2;
avgArray.push(item);
})
let sortArray = avgArray.slice().sort((a, b) => b - a);
avgArray.forEach( rank => {
answer.push(sortArray.indexOf(rank) + 1);
})
return answer;
}
영어점수와 수학점수를 합한 평균을 구하고, 평균을 새로운 배열에 넣어준 뒤 내림차순으로 정렬해주었다.
sort는 원본 배열이 변경되기 때문에 slice로 복사 후 새로운 배열로 만들어준 뒤 정렬할 수 있도록 했다.
그리고 내림차순으로 정렬된 sortArray의 인덱스 + 1 을 가져오면 순위를 얻을 수 있다고 생각해서 평균값이 들어있는 배열(avgArray)의 아이템들을 indexOf에 넣어주었다.
평균값의 배열을 만들고 내림차순 정렬까지는 어렵지 않았는데 순위를 가져오는 데서 생각처럼 되지 않았다.
평균 점수들을 sort된 배열 내 인덱스값에 넣어줄 생각을 못하고 계속 avgArray와 sortArray를 대조해서 비교하려는 생각에서 벗어나지 못해서 마지막에서 조금 헤맸었던 것 같다.
728x90
'개발 > javascript' 카테고리의 다른 글
[JavaScript] 요소 크기 및 위치 측정 메소드 정리 (0) | 2025.03.11 |
---|---|
[JavaScript] 오늘 날짜 출력하기 (0) | 2023.09.09 |
[프로그래머스] 저주의 숫자 3 (0) | 2023.03.09 |
[프로그래머스] 배열 회전시키기 (0) | 2023.02.19 |
[프로그래머스] 숫자 문자열과 영단어 (Javascript) (0) | 2023.01.17 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크