본문 바로가기
Javascript/코딩테스트-연습

[JavaScript] 등수 매기기 - 프로그래머스

by BeomBe 2024. 4. 4.
반응형

문제 설명

출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120882

문제 설명을 자세히 보고싶으시다면 아래 링크를 참고해주세요.

https://school.programmers.co.kr/learn/courses/30/lessons/120882

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

나의 풀이

function solution(score) {
    // 1. score의 평균 점수를 구한다.
    let avg = score.map(v=>(v[0]+v[1])/2);
  	
    // 2. avg를 내림차순으로 정렬한 배열 sort를 선언한다.
    let sorted = avg.slice().sort((a,b)=>b-a);
  	
    // 3. avg의 요소와 동일한 sorted 배열의 index 값에 1을 더한다.
    return avg.map(v => sorted.indexOf(v) + 1);
}

 

등수 매기기는 완벽하게 이해하고 따로 기록해두는편이 좋을 것 같다.

 

유용하게 쓰일테니...

 

 

다른사람의 풀이 중 For문만 사용한 풀이가 있어 따로 기록해둔다.

function solution(score) {
  const answer = Array.from({ length: score.length }).fill(1);
  let sum;
  for (let i = 0; i < score.length; i++) {
    sum = score[i].reduce((a, b) => a + b, 0);
    for (let j = 0; j < score.length; j++) {
      if (score[j].reduce((a, b) => a + b, 0) > sum) {
        answer[i]++;
      }
    }
  }
  return answer;
}
반응형