[ 프로그래머스 ] 상호평가 JAVA
2021. 9. 9. 17:33ㆍ알고리즘/프로그래머스
728x90
반응형
문제 설명
문제 풀이
class Solution {
public String solution(int[][] scores) {
String answer = "", grade = "FFFFFDDCBA";
for(int i=0; i<scores.length; i++) {
int max = scores[i][i], min = scores[i][i], sum = 0, avg = 0, cnt = scores.length;
boolean isMax = true, isMin = true;
for(int j=0; j<scores.length; j++) {
sum += scores[j][i];
if(i!=j){
if(max <= scores[j][i]) isMax = false;
if(min >= scores[j][i]) isMin = false;
}
}
if(isMax || isMin) {
cnt--;
sum -= scores[i][i];
}
avg = sum / cnt;
answer += grade.charAt(avg/10);
}
return answer;
}
}
그림상으로 볼 때 열끼리 값을 더해서 평균을 구해야 합니다.
자기 자신에게 최고점을 주거나 최저점을 줬을 경우 평균 계산에서 빼야 합니다.
자기 자신보다 큰 값이 있을 경우 최고점이 아니고, 작은 값이 있을 경우 최저점이 아니므로
isMax와 isMin 둘 다 false가 아닐 경우 평균 계산에서 제외합니다.
출처 : https://programmers.co.kr/learn/courses/30/lessons/83201?language=java
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[ 프로그래머스 ] 모음사전 JAVA (0) | 2021.09.30 |
---|---|
[ 프로그래머스 ] 직업군 추천하기 JAVA (0) | 2021.09.17 |
[ 프로그래머스 ] 부족한 금액 계산하기 JAVA (0) | 2021.09.09 |
[ 프로그래머스 ] 전화번호 목록 C++ 해시 (0) | 2020.01.04 |
[ 프로그래머스 ] 완주하지 못한 선수 C++ 해시 (0) | 2019.12.30 |