Blog

등수 매기기

날짜 0000-00-00
사용 언어
문제 유형
정답률 %
문제 URL

문제 #

문제 설명 #
제한사항 #

나의 풀이 #

import java.util.Arrays;

class Solution {
    public int[] solution(int[][] score) {
        int len = score.length;
        
        int[] avg = new int[len];
        
        for(int i = 0; i<len; i++) {
            avg[i] = (score[i][0] + score[i][1]) / 2;
        }
        
        int[] answer = Arrays.copyOf(avg, len);
        
        Arrays.sort(avg);
        
        for(int i = 0; i<len; i++) {
            answer[i] = len-Arrays.binarySearch(avg, answer[i]);
        }
        
        return answer;
    }
}
  • 테스트 케이스 1, 3, 6, 7, 8, 9, 10에서 오류 발생
    • 오류 이유 : 평균 값이 소수일 경우가 고려되지 않음
    • 해결 방안 : avg배열을 double로 변경
      • return값은 int배열이므로 double 배열 추가
import java.util.Arrays;

class Solution {
    public int[] solution(int[][] score) {
        int len = score.length;
        
        double[] avg = new double[len];
        
        for(int i = 0; i<len; i++) {
            avg[i] = (score[i][0] + score[i][1]) / 2;
        }
        
        double[] avg_copy = Arrays.copyOf(avg, len);
        
        Arrays.sort(avg_copy);
        
        int[] answer = new int[len];
        for(int i = 0; i<len; i++) {
            answer[i] = len-Arrays.binarySearch(avg_copy, avg[i]);
            System.out.print(len-Arrays.binarySearch(avg_copy, avg[i]));
        }
        
        return answer;
    }
}
  • 테스트 케이스 1, 3, 6, 7, 8, 9, 10에서 오류 발생 -> 동점이 3명 이상 일 경우가 고려되지 않을 경우의 오류

다른 사람의 풀이 #



관련개념 학습 #