본문 바로가기
프로그래밍/알고리즘 풀이

프로그래머스 상호 평가 자바

by 방구석개발자 2021. 8. 10.
반응형

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

자바 코드

class Solution {
    public String solution(int[][] scores) {
        StringBuilder answer = new StringBuilder();
        for(int i=0;i<scores.length;i++){
            int max=scores[i][i];
            int min=scores[i][i];
            int tot=0;
            boolean unique=true;
            for(int j=0;j<scores.length;j++){
                if(i!=j&&unique){
                    if(scores[i][i]==scores[j][i]) unique=false;
                    max=Integer.max(max,scores[j][i]);
                    min=Integer.min(min,scores[j][i]);
                }
                tot+=scores[j][i];
            }
            if(scores[i][i]==max&&unique){
                answer.append(getGrade((tot-max)/(scores.length-1)));
            }else if(scores[i][i]==min&&unique){
                answer.append(getGrade((tot-min)/(scores.length-1)));
            }else{
                answer.append(getGrade((tot)/(scores.length)));

            }
        }

        return answer.toString();
    }
    
    public String getGrade(double score){
        if(score>=90){
            return "A";
        }else if(score>=80){
            return "B";
        }else if(score>=70){
            return "C";
        }else if(score>=50){
            return "D";
        }else{
            return "F";
        }
    }
}

문제 풀이

이 문제는 자기자신의 점수가 max 또는 min 이면서 유일할때를 체크 하며 평균을 구할때 빼고

아니면 그냥 다 더해서 평균을 구하면 됩니다.

반응형

댓글