in.add()

[83201] 2주차_상호평가 본문

Algorithm/Programmers

[83201] 2주차_상호평가

idan 2021. 10. 8. 19:50

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/83201

 

코딩테스트 연습 - 2주차_상호평가

[[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD"

programmers.co.kr

 

문제 해결 방법

scores 배열의 열이 해당 index의 학생이 받은 점수이므로 열을 탐색하도록 구현했다.

 

 

class Solution {
    public String solution(int[][] scores) {
        String answer = "";
        
        for(int i = 0; i < scores[0].length; i++) {
            int self = scores[i][i];
            int selfCnt = 0;
            int sum = 0;
            int min = 100;
            int max = 0;
            int cnt = 0;
            for(int j = 0; j < scores.length; j++) {
                int score = scores[j][i];
                if(score == self) selfCnt++;
                min = Math.min(min, score);
                max = Math.max(max, score);
                sum += score;
                cnt++;

            }
            if(self == min || self == max) {
                if(selfCnt == 1) {
                    sum -= self;
                    cnt--;
                }
            }
            
            answer += getGrade(sum, cnt);
        }
        
        return answer;
    }
    
    public char getGrade(int sum, int cnt) {
        double avrg = (double)sum / cnt;
        System.out.println(avrg);
        if(avrg >= 90) return 'A';
        else if(avrg >= 80) return 'B';
        else if(avrg >= 70) return 'C';
        else if(avrg >= 50) return 'D';
        else return 'F';
    }
}

'Algorithm > Programmers' 카테고리의 다른 글

[62048] 멀쩡한 사각형  (0) 2021.10.25
[1844] 게임 맵 최단거리  (0) 2021.10.16
[64062] 징검다리 건너기  (0) 2021.09.27
[84512] 5주차_모음사전  (0) 2021.09.15
[42883] 큰 수 만들기  (0) 2021.09.14
Comments