본문 바로가기
JAVA/프로그래머스

[Lv.0] 프로그래머스 - 등수 매기기 : Java

by ♡˖GYURI˖♡ 2024. 6. 18.
 

프로그래머스

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

programmers.co.kr

 

 

 

이해하기

처음 시도했던 풀이는 int 배열을 따로 선언해서 각각의 평균을 계산한 후, 등수를 매기는 것이었다.

하지만 등수 로직을 구현하는데 실패하였다...

 

참고한 블로그⬇️

 

프로그래머스 [JAVA] :: 등수 매기기

📚 문제 정의 영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평

velog.io

 

찾아보니 굳이 평균을 계산해서 int 배열에 넣고, 그걸 가지고 등수를 매길 필요가 없었다!

 

  • List에 각각의 영어 점수 + 수학 점수를 add한다.

  • 해당 List를 내림차순으로 정렬한다.

  • 각 학생의 영어 점수 + 수학 점수 등수를 List에서 찾는다!

 

문제풀이

import java.util.*;

class Solution {
    public int[] solution(int[][] score) {
        List<Integer> list = new ArrayList<>();
        
        for (int[] s : score) {
            list.add(s[0] + s[1]);
        }
        
        list.sort(Comparator.reverseOrder());
        
        int[] answer = new int[score.length];
        
        for (int i = 0; i < score.length; i++) {
            answer[i] = list.indexOf(score[i][0] + score[i][1]) + 1;
        }
        
        return answer;
    }
}