devlog_owen
[프로그래머스] 귤 고르기 본문
728x90
문제
먼저 배열 안의 빈도수를 센다. 그리고 객체 배열 중 value 값만을 배열로 추출한다.
나온 value 배열값을 내림차순으로 정렬한다. 그럼 큰 수부터 작은 수 순서대로 배열이 정렬된다.
for문을 돌리면서 k에서 배열의 가장 큰 숫자(인덱스 0번)부터 빼면서 if문으로 값을 비교하면서 count를 1씩 추가함
count를 반환하면 그게 바로 k 크기 종류의 최솟값임.
나의 풀이
function solution(k, tangerine) {
let count = 0;
const obj = {};
for (let i = 0; i < tangerine.length; i++) {
obj[tangerine[i]] = (obj[tangerine[i]] || 0) + 1;
}
const sortedArr = Object.values(obj).sort((a, b) => b - a);
let sum = 0;
for (let i = 0; i < sortedArr.length; i++) {
if (sum < k) {
sum += sortedArr[i];
count++;
} else {
break;
}
}
return count;
}
다른 사람 풀이
본문1
회고
본문1
728x90
'algorithm > (js)프로그래머스' 카테고리의 다른 글
[프로그래머스] H-Index (0) | 2023.11.17 |
---|---|
[프로그래머스] K번째 수 (0) | 2023.11.17 |
[프로그래머스] 두 개 뽑아서 더하기 (1) | 2023.11.15 |
[프로그래머스] 영어 끝말잇기 (0) | 2023.11.14 |
[프로그래머스] N개의 최소공배수 (1) | 2023.11.13 |