JAVASCRIPT/코딩테스트

[프로그래머스] 0단계 - 등수 매기기

예글 2024. 1. 31. 16:16

1. 문제 설명

 

2. 답안

function solution(score) {
    let arr = []
    
    for(let item of score){
        let [eng, math] = item
        
        arr.push((eng + math) / 2)
    }
    
    let answer = [...arr].sort((a,b) => b - a)
    
    return arr.map(x => answer.indexOf(x) + 1)
}

 

- 처음에 reduce로 객체 만들어서 시도하였으나,, 그렇게 하니까 중복된 값이 사라져서 다른 방법으로 시도,,

- sort는 원본 배열을 수정하므로 얕은 복사를 통해 answer에 할당

- indexOf는 값에 해당하는 첫번째 인덱스를 반환해주니 중복된 값도 그 첫번째 인덱스로 들어가서 해결!