본문 바로가기
Algorithm/programmers

[JS]programmers: 실패율

by 갈잃자 2022. 11. 22.

https://school.programmers.co.kr/learn/courses/30/lessons/42889?language=javascript 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


시간적으로 뛰어난 알고리즘은 아닌것 같다.

 

 단계별로 성공한 플레이어와 성공하지 못한 플레이어를 가지고 실패율을 만들어 내림차순으로 표현하는 문제이다.

function solution(N, stages) {
    var answer = [];
    stages.sort()
    var arr = []
    console.log(stages)
    for (var i =1; i<=N; i++) {
        var cnt = 0; //분자
        var fail = 0; //분모
        for (var j = 0; j<=stages.length; j++) {
            if (stages[j] === i) {
                cnt+=1;
            }
            if (stages[j] >= i) {
                fail+=1;
            }
        }
        // 분모가 0임을 방지하기 위해 작성한 if문
        if (fail ===0) {
            fail = 1
        }
        arr.push([cnt/fail, i])
    }
    // 내림차순으로 정렬
    arr.sort(function(a, b) {
        return b[0]- a[0];
    })
    arr.forEach(element => {
        answer.push(element[1])
    });
    console.log(arr)
    console.log(answer)
    return answer;
}

새롭게 안 사실

 

  • js로 내림차순 정렬을 할 때엔, sort내에 함수를 이용하여 정렬을 한다!
 // 배열의 값을 내림차순으로 정렬할 때 사용되는 코드
 arr.sort(function(a, b) {
        return b- a;
    })

 

댓글