728x90
코드 힌트
- 평균 점수 계산:
- 각 학생의 평균 점수를 계산하려면, 학생의 각 과목 점수를 합산한 후, 과목 수로 나누어 평균을 구합니다.
- 이를 위해 2중 for 루프를 사용하여 각 학생의 점수를 순회하고 평균을 계산합니다.
- 평균 점수를 정렬하여 순위 매기기:
- 평균 점수를 저장한 배열을 List<Double>로 변환하여 정렬합니다.
- Collections.sort와 Collections.reverseOrder를 사용하여 내림차순으로 정렬합니다.
- 순위 부여:
- 정렬된 리스트에서 각 평균 점수의 인덱스를 찾고, 이 인덱스에 1을 더하여 순위를 매깁니다.
- List.indexOf 메소드를 사용하여 평균 점수의 위치를 찾아 순위를 계산합니다.
정답은 더보기 클릭
더보기
import java.util.*;
class Solution {
public int[] solution(int[][] score) {
// 평균 점수를 저장할 배열을 Double 타입으로 선언합니다.
Double[] avgScore = new Double[score.length];
int n = score[0].length; // 과목 수
// 각 학생의 평균 점수를 계산합니다.
for (int i = 0; i < score.length; i++) {
int sum = 0;
for (int j = 0; j < n; j++) {
sum += score[i][j]; // 각 학생의 모든 과목 점수를 합산합니다.
}
avgScore[i] = sum * 1. / n; // 평균 점수를 계산합니다.
}
// 결과를 저장할 배열을 선언합니다.
int[] result = new int[score.length];
// 평균 점수를 List로 변환하여 내림차순으로 정렬합니다.
List<Double> list = new ArrayList<>(Arrays.asList(avgScore));
Collections.sort(list, Collections.reverseOrder());
// 각 학생의 평균 점수를 기준으로 순위를 매깁니다.
for (int i = 0; i < avgScore.length; i++) {
result[i] = list.indexOf(avgScore[i]) + 1; // 순위를 1부터 시작하도록 조정합니다.
}
return result; // 순위를 포함한 결과 배열을 반환합니다.
}
}
728x90
'프로그래머스(Java) > Level 0' 카테고리의 다른 글
[프로그래머스] 유한소수 판별하기 (0) | 2024.08.17 |
---|---|
[프로그래머스] 저주의 숫자 3 (0) | 2024.08.17 |
[프로그래머스] 로그인 성공? (0) | 2024.08.16 |
[프로그래머스] OX퀴즈 (0) | 2024.08.16 |
[프로그래머스] 외계어 사전 (0) | 2024.08.16 |