250x250
Notice
Recent Posts
Recent Comments
Link
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

devlog_owen

[프로그래머스] 귤 고르기 본문

algorithm/(js)프로그래머스

[프로그래머스] 귤 고르기

developer_owen 2023. 11. 16. 23:41
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