Lv.1 : 과일장수 [JavaScript]
2024. 11. 10. 17:33ㆍAlgorithm/프로그래머스
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/135808
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr

문제 풀이1 => 시간초과
function solution(k, m, score) {
var answer = 0;
var sortScore = score.sort((a, b) => b - a);
while(sortScore.length >= m) {
var splitArr = sortScore.splice(0, m);
answer += splitArr[m - 1] > k ? k * m : splitArr[m - 1] * m;
}
return answer;
}
score을 내림차순으로 정렬하여
앞에서부터 m개씩 잘라가면서, m개의 사과 중 최저 점수(splitArr[m-1])과 사과의 최대점수 k를 비교하여 answer에 더해간다.
이 풀이로는 테스트 11~15번에서 시간초과가 난다.
문제 풀이2
function solution(k, m, score) {
var answer = 0;
var sortScore = score.sort((a, b) => b - a).filter((e, idx) => (idx + 1) % m == 0);
for(var s of sortScore){
answer += s > k ? k * m : s * m;
}
return answer;
}
매번 자르고 비교하는 게 시간이 오래 걸리나 싶어서
sortScore에서 m번째 요소가 각 박스에서의 최저점수이기 때문에 filter를 통해 최저점수만 걸러 사용해 주었다.
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
Lv.1 : [PCCP 기출문제] 1번 / 붕대 감기 (1) | 2025.01.20 |
---|---|
Lv.2 : 튜플 [JavaScript] (0) | 2024.11.10 |
Lv.1 : 모의고사 [JavaScript] (1) | 2024.11.07 |
Lv.2 : 의상 [JavaScript] (0) | 2024.11.06 |
Lv.2 : 프로세스 [JavaScript] (0) | 2024.11.03 |