C#

[프로그래머스 힌트/답/해석] 등수 매기기

Guk-blog 2024. 1. 30. 15:22
728x90
반응형

힌트

더보기

- 과목의 평균값으로 등수를 매긴다

- 동일한 값이 존재한다면 공동 순위가 된다

- 평균을 낼 때 int형식으로 한다면 오류가 발생할 수 있으므로 flaot, double 등을 사용한다

정답

더보기
float[] averageScore = new float[score.Length / score.GetLength(1)];
for(int i=0; i< score.Length / score.GetLength(1); i++){
    averageScore[i] = (float)(score[i,0]+score[i,1])/score.GetLength(1);
}
var averageScoreArr = averageScore.Select(x=> averageScore.Any(y=> y > x) ? averageScore.Count(y=>y>x)+1 : 1).ToArray();
return averageScoreArr;

해석

더보기

 

float[] averageScore = new float[score.Length /score.GetLength(1)];

평균 점수를 저장하기 위한 float[] 선언

float배열의 길이는 score배열의 길이/score.GetLength(1)

for(int i=0; i< averageScore.Length; i++){
                averageScore[i] = (float)(score[i,0]+score[i,1])/score.GetLength(1);
            }

float배열의 길이만큼 반복하며 각 점수를 합산하여 과목 수(score.GetLength(1) = 2) 만큼 나누어 준다

var averageScoreArr = averageScore.Select(x=> averageScore.Any(y=> y > x) ? averageScore.Count(y=>y>x)+1 : 1).ToArray();

 float 배열에서 본인보다 큰 점수가 있을 때 본인 보다 큰 수의 개수를 리턴해준다

728x90
반응형