min
프로그래머스 명예의 전당 자바스크립트 본문
<문제>
https://school.programmers.co.kr/learn/courses/30/lessons/138477
<나의 풀이>
//score에 길이만큼 반복문을 돌면서 다음 과정을 수행한다.
//score에 길이에서 k번재 수 만큼은 계속 배열에 값을 넣는다.
//k+1번째 수 부터는 주어진 score의 값이 제일 못한 사람의 수보다 큰지 안큰지 확인한다
//만약 크다면 제일 작은 수를 빼고 큰수를 넣는다.
//만약 작다면 제일 작은 수를 유지한다.
//배열 중에서 가장 작은 원소의 값을 answer에 넣는다.
function solution(k, score) {
var answer = [];
var dummy = []
for(let i = 0; i < score.length; i++) {
if(i < k) {
dummy.push(score[i])
}
else {
if(dummy[0] < score[i]) {
dummy[0] = score[i]
}
}
dummy = dummy.sort((a,b) => a-b)
answer.push(dummy[0])
}
return answer;
}
<다른 사람의 풀이>
function solution(k, score) {
const stack = []
return score.reduce((a,c) => {
if(stack.length < k) {
stack.push(c)
stack.sort((a,b) => a - b)
}
else {
stack.push(c)
stack.sort((a,b) => a - b)
stack.shift()
}
a.push(stack[0])
return a
},[])
}
<참고자료>
sort
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
'알고리즘' 카테고리의 다른 글
프로그래머스 비밀지도 자바스크립트 (0) | 2023.08.19 |
---|---|
프로그래머스 기사단원의 무기 자바스크립트 (0) | 2023.08.18 |
프로그래머스 같은 숫자는 싫어 자바스크립트 (0) | 2023.08.16 |
프로그래머스 콜라 문제 자바스크립트 (0) | 2023.08.16 |
프로그래머스 추억 점수 자바스크립트 (0) | 2023.08.16 |