in.add()
[83201] 2주차_상호평가 본문
문제 링크 : 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
문제 해결 방법
scores 배열의 열이 해당 index의 학생이 받은 점수이므로 열을 탐색하도록 구현했다.
class Solution {
public String solution(int[][] scores) {
String answer = "";
for(int i = 0; i < scores[0].length; i++) {
int self = scores[i][i];
int selfCnt = 0;
int sum = 0;
int min = 100;
int max = 0;
int cnt = 0;
for(int j = 0; j < scores.length; j++) {
int score = scores[j][i];
if(score == self) selfCnt++;
min = Math.min(min, score);
max = Math.max(max, score);
sum += score;
cnt++;
}
if(self == min || self == max) {
if(selfCnt == 1) {
sum -= self;
cnt--;
}
}
answer += getGrade(sum, cnt);
}
return answer;
}
public char getGrade(int sum, int cnt) {
double avrg = (double)sum / cnt;
System.out.println(avrg);
if(avrg >= 90) return 'A';
else if(avrg >= 80) return 'B';
else if(avrg >= 70) return 'C';
else if(avrg >= 50) return 'D';
else return 'F';
}
}'Algorithm > Programmers' 카테고리의 다른 글
| [62048] 멀쩡한 사각형 (0) | 2021.10.25 |
|---|---|
| [1844] 게임 맵 최단거리 (0) | 2021.10.16 |
| [64062] 징검다리 건너기 (0) | 2021.09.27 |
| [84512] 5주차_모음사전 (0) | 2021.09.15 |
| [42883] 큰 수 만들기 (0) | 2021.09.14 |
Comments