import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
class Solution {
public int[] solution(int[][] score) {
List<Integer> sumScoreList = new ArrayList<>();
for (int[] s : score) {
sumScoreList.add(s[0] + s[1]);
}
sumScoreList.sort(Comparator.reverseOrder());
int[] result = new int[score.length];
for (int i = 0; i < result.length; i++) {
result[i] = sumScoreList.indexOf(score[i][0] + score[i][1]) + 1;
}
return result;
}
}
이차원 배열이 주어지고 각 배열마다 두과목의 점수를 가지고있고 평균을 구해 등수가 주어진 배열을 출력하는 문제이다.
과목수가 모두 같으므로 평균을 구하지않고 구현이 가능하다.
Arraylist
를 생성해서 배열별 점수합을 담은 리스트를 생성하고 등수를 구하기 위해 내림차순 정렬을 한다.
그런 후 등수를 담을 배열을 만들어 indexOf
를 통해 점수합이 동일한 인덱스의 위치를 받아 등수 배열에 담는 방식으로 구현하였다.