프로그래머스 풀이

[Programmers] level 0) 문제 '등수 매기기' 풀이

진기명기 2023. 4. 9. 21:57
🫠 Programmers (level 0) 
👉🏻 문제 54번 (등수 매기기) : 이차원배열에서 각 배열의 평균값을 구해 등수를 매기는 문제(공동 2위인 경우, 둘 다 3등으로 처리)

 

 

 


function solution(score) {
    // 평균값 받을 배열 생성
    let arr = []

    // 각 배열의 평균값 계산
    score.map((item) => {
      arr.push((item[0] + item[1])/2)
    })

    // slice()를 통해 arr 복사 후, 내림차순 정렬
    let result = arr.slice().sort((a,b) => b-a)

    // indexOf()를 통해 위치값으로 등수 매기기
    return arr.map((item) => result.indexOf(item) + 1)
}

✅ 확인할 점

💡 slice()를 통해 원본을 훼손하지 않는다는 특징을 활용하여 arr를 복사하였다.

💡indexOf()를 사용하여 해당 배열 요소의 위치를 찾고 +1을 해서 등수값을 매겼다. 

💡indexOf()는 배열에서 앞쪽부터 순차적으로 찾기 때문에 뒤에 같은 점수가 있어도 앞쪽 위치값을 반환한다는 점을 이용했다.