다희의 코딩 성장일기

[프로그래머스] level1. 위클리 챌린지 2주차 (자바 JAVA) 본문

Algorithm/프로그래머스

[프로그래머스] level1. 위클리 챌린지 2주차 (자바 JAVA)

ilmiodiario 2021. 8. 23. 18:34

[ 문제 ]  [프로그래머스] level1. 위클리 챌린지 2주차 (자바 JAVA)

 

문제 링크 : 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


# 접근 방법 및 풀이 

 

  • 코드참조

# 주의할 점 

 

  • 유일한 이라는 단어를 제대로 안 봤다.. 유일한 최저점, 유일한 최고점 일 때 그 점수 제외하고 평균을 구한다.
  • 문제 제대로 읽기!

 

JAVA 코드
class Solution {
    public String solution(int[][] scores) {
        String answer = "";
        for(int j = 0; j < scores.length; j++){
            double avg = 0;
            double sum = 0;
            int cnt = 0;
            int min = 100;
            int max = 0;
            boolean flag = true;
            for(int i = 0; i < scores.length; i++){
                sum += scores[i][j];
                cnt++;
                min = Math.min(min, scores[i][j]);
                max = Math.max(max, scores[i][j]);
                if(i != j && scores[j][j] == scores[i][j])
                    flag = false;
            }
            
            if(flag && (min == scores[j][j] || max == scores[j][j])){
                sum -= scores[j][j];
                cnt--;
            }
            avg = sum/cnt;
            if( avg >= 90)
                answer += "A";
            if(avg >= 80 && avg < 90)
                answer += "B";
            if(avg >= 70 && avg < 80)
                answer += "C";
            if(avg >= 50 && avg < 70)
                answer += "D";
            if(avg <50)
                answer += "F";
                
        }
        return answer;
    }
}

 

 

 

REVIEW

Comments