3은로그

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

코딩테스트

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

3은 2024. 3. 16. 17:27
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/138476

 

프로그래머스

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

programmers.co.kr

 

 

문제

 

 

 

코드

 

function solution(k, tangerine) {
    const result = {};
    let arr = [];
    let answer = 0;
    tangerine.forEach((v) => {                  //크기별 개수 구하기
        result[v] = (result[v] || 0) + 1;
    })
    arr = Object.values(result).sort((a,b) => b-a)  //내림차순 정렬
    for(let i = 0; i < arr.length; i++){
        if(k > 0){
            k -= arr[i];
            answer++;
        }
        else{
            break;
        }
    }
    return answer
}

 

 

1. 귤의 크기별 개수를 구한다.

2. 귤의 크기별 개수를 내림차순으로 정렬한다.

3. arr를 순회하며 한 상자의 담으려는 귤의 개수 k에서 크기별 개수를 뺀다.

 

 

배열 중복 개수 구하는 법 (forEach)

const result = {};				//중복된 값의 갯수를 저장하기 위한 Object를 선언
tangerine.forEach((v) => {                  
        result[v] = (result[v] || 0) + 1;
    })

 

 

객체에서 value 값만 가져오기

Object.values(result)