본문 바로가기
알고리즘/프로그래머스

프로그래머스 2주차 상호 평가 자바 java

by 클로드 2021. 8. 24.
반응형

풀이

1. 열에서 최대 값 찾기

2. 열에서 최소 값 찾기

3. 자기 자신의 값과 똑같은 값이 있다면 유일한 최고, 최저 조건이 아님으로 예외

4. 평균값으로 학점을 구하는 함수 만들기

 

코드

class Solution {
    public String solution(int[][] scores) {
        String answer = "";

        for (int i = 0; i < scores.length; i++) {
            int ownScore = scores[i][i];
            boolean sameScore = true;
            int max = scores[0][i];
            int min = scores[0][i];
            int sum = 0;
            int divide = 0;
            double avg;

            for (int j = 0; j < scores.length; j++) {
                //자기자신의 값과 똑같은 값 찾기
                if (i != j && ownScore == scores[j][i]) {
                    sameScore = false;
                }

                //열 비교
                if (max < scores[j][i]) {
                    max = scores[j][i];
                }
                if (min > scores[j][i]) {
                    min = scores[j][i];
                }

                sum += scores[j][i];
                divide++;
            }

            //유일한 최고, 최저일 경우 제외
            if (sameScore && (max == ownScore || min == ownScore)) {
                sum -= ownScore;
                divide--;
            }

            avg = (double)sum / (double)divide;
            answer += getRank(avg);
        }

        return answer;
    }
    
    public static String getRank(double score) {
        if (score >= 90) {
            return "A";
        }
        if (score >= 80) {
            return "B";
        }
        if (score >= 70) {
            return "C";
        }
        if (score >= 50) {
            return "D";
        }

        return "F";
    }
}

출처

https://programmers.co.kr/learn/courses/30/lessons/83201

반응형

댓글