알고리즘
프로그래머스 명예의 전당 자바스크립트
minprogramming
2023. 8. 17. 07:10
<문제>
https://school.programmers.co.kr/learn/courses/30/lessons/138477
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
<나의 풀이>
//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
Array.prototype.sort() - JavaScript | MDN
sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.
developer.mozilla.org