https://school.programmers.co.kr/learn/courses/30/lessons/138476
리턴 값: k개씩 담을때 최소한 종류의 갯수
첫번째 풀이
function solution(k, tangerine) {
var answer = 0;
const obj = {};
let count = 0;
for (const size of tangerine) {
obj[size] = (obj[size] || 0) + 1;
}
// sort
const sorted = Object.entries(obj).sort((a, b) => b[1] - a[1]);
while (count < k) {
count += sorted.shift()[1];
answer++;
}
return answer;
}
// 1, 22, 33, 4, 55
두번째 풀이
object정리할 때 forEach 써보기
function solution(k, tangerine) {
var answer = 0;
const obj = {};
let counts = 0;
tangerine.forEach(t => obj[t] = (obj[t] || 0)+1);
const sortedValues = Object.values(obj).sort((a, b) => b - a);
for (const value of sortedValues) {
if (counts >= k) {
break;
}
counts += value;
answer++;
}
return answer;
}
'알고리즘' 카테고리의 다른 글
[프로그래머스] 덧칠하기 (0) | 2023.08.07 |
---|---|
[프로그래머스] 한 번만 등장한 문자 (0) | 2023.07.27 |
[프로그래머스] 숫자의 표현 (0) | 2023.07.17 |
[프로그래머스] 예상대진표 (0) | 2023.07.13 |
[프로그래머스] 이진 변환 반복하기 (0) | 2023.07.13 |