728x90
function solution(k, score) {
const answer = [];
let legend = [];
for(let i of score) {
if(legend.length < k) {
legend.push(i);
}else {
legend.sort((a, b) => a - b);
if(legend[0] < i) {
legend[0] = i;
}
}
answer.push(Math.min(...legend));
}
return answer;
}
- 가장 낮은 숫자의 점수를 매번 새로운 점수와 비교하여 가장 높은 최상위 점수 k를 유지하는 것이 중요했던 문제였다.
- 힙정렬을 통해서 값이 매번 들어올 때 정렬해주는 알고리즘을 구현했으면 더 좋았겠지만, 간단하게 구현하였다.
728x90
'코딩테스트 연습' 카테고리의 다른 글
프로그래머스 코딩테스트 연습 - 마법의 엘리베이터 JavaScript (0) | 2023.01.01 |
---|---|
프로그래머스 코딩테스트 연습 - 문자열 나누기 JavaScript (0) | 2023.01.01 |
프로그래머스 코딩테스트 연습 - 가장 가까운 같은 글자 JavaScript (0) | 2022.12.24 |
프로그래머스 코딩테스트 연습 - 할인 행사 JavaScript (0) | 2022.12.17 |
프로그래머스 코딩테스트 연습 - 귤 고르기 JavaScript (0) | 2022.12.10 |