알고리즘 - 2주차_상호평가

HoJeong Im·2021년 9월 23일
0

Break_Algo

목록 보기
17/46

문제

  • 링크

  • 기본적인 구현 문제

코드

function cal(avg){
    if(avg>=90){
        return 'A';
    }
    else if(avg>=80 && avg<90){
        return 'B';
    }
    else if(avg>=70 && avg<80){
        return 'C';
    }
    else if(avg>=50 && avg<70){
        return 'D';
    }
    else if(avg<50){
        return 'F';
    }
}

function solution(scores) {
    var answer = '';
    let len = scores.length;
    for(let i = 0; i < len; i++){
        let val = 0;
        let target = scores[i][i];
        let arr = [];
        for(let j = 0; j < len; j++){
            if(i!==j){
                arr.push(scores[j][i]);    
            }
        }    
  
        let min = Math.min(...arr);
        let max = Math.max(...arr);
        if(target > max || target < min){
            let avg = arr.reduce((s,a)=>{
                return s+a;
            },0) / (len-1);
            answer = answer.concat(cal(avg));
        }
        else {
            arr.push(target);
            let avg = arr.reduce((s,a)=>{
                return s+a;
            },0) / len;
            answer = answer.concat(cal(avg));
        }
    }
    
    
    return answer;
}

회고

  • 문제를 보고 당황하는 대신, 꼼꼼히 읽고 실수를 최대한 줄여서 가독성 높게 작성해보자

  • 효율적으로 작성해야 나중에 내가 편하다 ㅠㅠ

profile
꾸준함이 제일 빠른 길이었다

0개의 댓글