728x90
반응형
풀이
먼저, score를 한개씩 보내기 위해 forEach를 사용해 helper 함수에 전달
score.forEach((i)=>{
helper(i)
})
만약, fame(명예의 전당에 오른 점수)의 길이가 k보다 작을 경우 fame에 값을 push하고 최솟값을 구해서 결과값에 push
if(fame.length<k){
fame.push(point);
min=Math.min(...fame)
res.push(min)
}
fame의 길이가 k 이상이 되었을 때
만약 점수가 최솟값보다 크면 최솟값을 찾아 자르고 점수를 명예의 전당에 올림
올라간 점수들에서 최솟값을 찾아서 결과값에 push
점수가 최솟값보다 작은경우 전당에서 최솟값을 찾아 결과값에 push
같은 경우 결과값에만 push
else{
if(point>min){
fame.splice(fame.indexOf(min),1)
fame.push(point)
min=Math.min(...fame)
res.push(min)
}
else if(point<min){
min=Math.min(...fame)
res.push(min)
}
else{
res.push(point)
}
}
최종코드
function solution(k, score) {
let fame = [];
let res = [];
let min=-1
const helper=(point)=>{
if(fame.length<k){
fame.push(point);
min=Math.min(...fame)
res.push(min)
}
else{
if(point>min){
fame.splice(fame.indexOf(min),1)
fame.push(point)
min=Math.min(...fame)
res.push(min)
}
else if(point<min){
min=Math.min(...fame)
res.push(min)
}
else{
res.push(point)
}
}
}
score.forEach((i)=>{
helper(i)
})
return res
}728x90
반응형
'알고리즘(Algorithm)' 카테고리의 다른 글
| 프로그래머스 - 영어 끝말잇기[JS] (0) | 2023.02.12 |
|---|---|
| 프로그래머스 - 숫자의 표현 [JS] (0) | 2023.01.30 |
| 프로그래머스 - 키패드 누르기 [JS] (0) | 2023.01.16 |
| 프로그래머스 - 크레인 인형뽑기 게임 [JS] (0) | 2023.01.16 |
| 프로그래머스 - 체육복(Greedy) [JS] (3) | 2023.01.13 |