728x90
이해하기
처음 시도했던 풀이는 int 배열을 따로 선언해서 각각의 평균을 계산한 후, 등수를 매기는 것이었다.
하지만 등수 로직을 구현하는데 실패하였다...
참고한 블로그⬇️
찾아보니 굳이 평균을 계산해서 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;
}
}
'JAVA > Coding Test Study' 카테고리의 다른 글
[Lv.2] 프로그래머스 - 연속된 부분 수열의 합 : Java (0) | 2024.06.18 |
---|---|
[Lv.0] 프로그래머스 - 저주의 숫자 3 : Java (0) | 2024.06.18 |
[Lv.2] 프로그래머스 - 삼각 달팽이 : Java (0) | 2024.06.10 |
[Lv.2] 프로그래머스 - 택배상자 : Java (0) | 2024.06.07 |
[Lv.2] 프로그래머스 - 연속 부분 수열 합의 개수 : Java (0) | 2024.05.30 |