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;
})
'Algorithm > programmers' 카테고리의 다른 글
[JS]programmers: 두 개 뽑아서 더하기 (0) | 2022.11.25 |
---|---|
[파이썬]programmers: 프린터 (0) | 2022.11.23 |
[파이썬]programmers: 기능개발 (1) | 2022.11.15 |
[파이썬]programmers: 괄호 회전하기 (0) | 2022.11.15 |
programmers: 행렬의 곱셈 (0) | 2022.11.12 |
댓글