일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바
- node.js
- 그리디
- 자바스크립트
- 코딩테스트
- 프로그래머스 JS
- CLASS
- greedy
- React
- SWEA
- 알고리즘
- 프로그래머스
- programmers
- 네트워크
- CSS
- Lv1
- javascript
- 이것이 코딩테스트다 with 파이썬
- bfs/dfs
- 코딩테스트 입문
- Baekjoon
- Next.js
- Java
- Python
- js
- 정렬
- 백준
- Lv2
- 연습문제
- Typescript
Archives
- Today
- Total
개발야옹
[Programmers] 코딩테스트 입문 - 등수 매기기 본문
https://school.programmers.co.kr/learn/courses/30/lessons/120882
function solution(score) {
let answer = new Array(score.length).fill().map((v) => 0);
let args = [];
score.forEach((sc, index) => {
let total = 0;
sc.forEach((s) => {
total += s;
})
args.push({arg : total/sc.length, index: index});
});
args.sort(function(a,b) {
return b.arg - a.arg;
});
let tmp = [];
let max = 0;
let rank =1;
while(true) {
if(args.length === 0){
break;
}
if(tmp.length === 0) {
tmp.push(args.shift());
max = tmp[0].arg;
}
args.forEach((a) => {
if(max === a.arg) {
tmp.push(a);
}
});
args = args.filter((a) => max !== a.arg);
for(let i = 0 ; i < tmp.length ;i++) {
answer[tmp[i].index] = rank;
}
rank += tmp.length;
tmp = [];
max = 0;
}
return answer;
}
728x90
'Algorithm\CodingTest > Programmers' 카테고리의 다른 글
[Programmers] 코딩테스트 입문 - 분수의 덧셈 (0) | 2023.02.24 |
---|---|
[Programmers] 코딩테스트 입문 - 유한소수 판별하기 (0) | 2023.02.24 |
[Programmers] 코딩테스트 입문 - 연속된 수의 합 (0) | 2023.02.16 |
[Programmers] 완전탐색 lv2 - 카펫 (0) | 2023.02.13 |
[Programmers] 해시 lv3 - 베스트앨범 (0) | 2023.02.12 |