728x90
https://school.programmers.co.kr/learn/courses/30/lessons/120882
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
메모리: 87.8 MB, 시간: 0.76 ms
사용 알고리즘: 정렬
import java.util.*;
class Solution {
public int[] solution(int[][] score) {
// (영어 점수 + 수학 점수)와 학생 번호를 담은 배열
int[][] arr = new int[score.length][2];
for(int i = 0; i < score.length; i++) {
arr[i][0] = score[i][0] + score[i][1];
arr[i][1] = i;
}
// 점수를 기준으로 내림차순 정렬
Arrays.sort(arr, (o1, o2) -> o2[0] - o1[0]);
// 등수 매기기
int ranking = 1;
int same = 0;
int[] answer = new int[score.length];
answer[arr[0][1]] = ranking;
for(int i = 1; i < score.length; i++) {
if(arr[i - 1][0] != arr[i][0]) { // 이전 사람과 점수가 다르다면
ranking += same + 1;
same = 0;
}
else // 이전 사람과 점수가 같다면
same ++;
answer[arr[i][1]] = ranking;
}
return answer;
}
}728x90
'Problem Solving > Programmers' 카테고리의 다른 글
| [프로그래머스, 181844] 배열의 원소 삭제하기 (java) (0) | 2025.04.25 |
|---|---|
| [프로그래머스, 181846] 두 수의 합 (java) (0) | 2025.04.25 |
| [프로그래머스, 120868] 삼각형의 완성조건 (2) (java) (0) | 2025.04.07 |
| [프로그래머스, 181835] 조건에 맞게 수열 변환하기 3 (java) (0) | 2025.04.07 |
| [프로그래머스, 181928] 이어 붙인 수 (java) (0) | 2025.04.07 |