인프런 커뮤니티 질문&답변

김병만님의 프로필 이미지
김병만

작성한 질문수

자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)

5. 등수구하기

이렇게 풀어도 괜찮을까요?

작성

·

233

0

function solution (arr)

{

    let answer = [];

    let count = 1;

    for(i=0; i<arr.length; i++)

    {

        let max = Math.max(...arr);

   

        for(j=0; j<arr.length; j++)

        {

            if(arr[j] === max && arr[j] !== 0){

                answer[j] = count;

                arr[j] = 0;
                if(Math.max(...arr) !== max) count++;                           }    

        }   

}
    return answer;

}  

답변 1

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

위에 코드는 정답이 나오지 않는 코드입니다. 만약

let arr = [90, 90, 80, 80, 70];

이라면 정답은 [1, 1, 3, 3, 5] 가 답입니다.

코드 개선해 보았습니다.

function solution (arr){
    let answer = [];
    let count = 1;
    for(i=0; i<arr.length; i++){
        let max = Math.max(...arr);
        let cnt = 0;
        for(j=0; j<arr.length; j++){
            if(arr[j] === max && arr[j] !== 0){
                answer[j] = count;
                arr[j] = 0;
                cnt++;
            }    
        }  
        count+=cnt;
    }
    return answer;
}
김병만님의 프로필 이미지
김병만

작성한 질문수

질문하기