반응형
https://programmers.co.kr/learn/courses/30/lessons/83201
import java.util.*;
class Solution {
public String solution(int[][] scores) {
StringBuilder sb = new StringBuilder();
for(int i=0; i<scores.length; i++){
//합계
double sum = 0;
//평균
double avg = 0;
//자신의 점수
int selfScore = scores[i][i];
//유일성 체크
boolean unique = true;
//나눠야할 갯수
int cnt = scores.length;
//최대값을 추출하기위해 max값을 -1로 설정 ( 점수는 0~100이기때문에 )
int max = -1;
//최소값을 추출하기위해 min값을 101로 설정 ( 점수는 0~100이기때문에 )
int min = 101;
for(int j=0; j<scores.length; j++){
//자신이 받은 모든 점수를 더한다
sum += scores[j][i];
//자신의 점수는 제외하고, 자신의 점수가 유일한지 체크한다. (유일하면 true 동점이잇으면 false)
if( i != j && scores[j][i] == selfScore){
unique = false;
}
//최대값 추출
max = Math.max(max, scores[j][i]);
//최소값 추출
min = Math.min(min, scores[j][i]);
}
//자신의 점수가 유일값이고, 최대값이거나 최소값이면
if( unique == true && (max == selfScore || min == selfScore)){
//합계에서 뺀다.
sum -= selfScore;
cnt--;
}
avg = sum / cnt;
sb.append(grade(avg));
}
return sb.toString();
}
public String grade(double score){
if(score >= 90.0)
return "A";
else if(score >= 80.0)
return "B";
else if(score >= 70.0)
return "C";
else if(score >= 50.0)
return "D";
else
return "F";
}
}
반응형
'코딩테스트 > 프로그래머스 1단계' 카테고리의 다른 글
프로그래머스 1단계 - 이상한 문자 만들기 (0) | 2021.08.19 |
---|---|
프로그래머스 1단계 - 숫자 문자열과 영단어 (0) | 2021.08.12 |
프로그래머스 1단계 - 자릿수 더하기 (0) | 2021.05.05 |
프로그래머스 1단계 - 약수의 합 (0) | 2021.05.05 |
프로그래머스 1단계 - 수박수박수박수박수박수? (0) | 2021.05.03 |