문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
메모
splice가 시간 초과를 발생시켜 slice로 바꿨더니 통과되었다.
정답
function solution(k, m, score) {
score.sort((a, b) => b - a);
let idx = 0;
let answer = 0;
for (let i = 0; i < Math.floor(score.length / m); i++) {
idx += m;
let box = score.slice(idx - m, idx);
answer += box.pop() * m;
}
return answer;
}
// 시간 초과
function solution(k, m, score) {
score.sort((a, b) => b - a);
let answer = 0;
for (let i = 0; score.length >= m; i++) {
let box = score.splice(0, m);
answer += box.pop() * m;
}
return answer;
}
// 모범 답안
function solution(k, m, score) {
let answer = 0;
const sortedScore = score
.sort((a, b) => a - b)
.slice(score.length % m);
for (let i = 0; i < sortedScore.length; i += m) {
answer += sortedScore[i] * m;
}
return answer;
}