본문 바로가기

알고리즘(Algorithm)

[JavaScript] 귤 고르기 (프로그래머스 LEVEL 2)

https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=javascript

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제풀이

쏘카 코테 보려고 JS로 풀어봤다. 좀 편한데?

 

object에 귤 크기를 key, 귤 개수를 value로 해서 크기별 개수를 구한다.

크기만 빼서 배열로 만들고, 크기 순으로 내림차순을 한다.

반복문 돌면서 k에서 해당하는 값을 빼준다. 그리고 정답을 1 증가시킨다.

k가 0보다나 작거나 같아지면 반복을 멈춘다.

 

이렇게 하면 크기가 서로다른 종류의 수의 최솟값을 구할 수 있다.

function solution(k, tangerine) {
    let a = {};
    var answer = 0;
    tangerine.forEach(element => {
        if(a[element] != undefined) a[element] += 1;
        else a[element] = 1;
    });
    
    let arr = Object.values(a);
    arr.sort((a, b) => b-a);
    for(let i=0; i<arr.length; i++) {
        k -= arr[i];
        answer++;
        if(k <= 0) break;
    }
    return answer;
}

'알고리즘(Algorithm)' 카테고리의 다른 글

[C++] 체인 (2785번)  (0) 2023.11.23
[C++] Yonsei TOTO (12018번)  (1) 2023.11.22
[C++] 동전 (9084번)  (1) 2023.11.16
[C++] 네트워크 연결 (1922번)  (1) 2023.11.13
[C++] 먹을 것인가 먹힐 것인가 (7795번)  (0) 2023.11.11