-
[프로그래머스 Level 2] 귤 고르기 (JavaScript)Coding Test/JavaScript 2024. 11. 24. 19:19
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/138476
입출력 예
k tangerine result 6 [1, 3, 2, 5, 4, 5, 2, 3] 3 4 [1, 3, 2, 5, 4, 5, 2, 3] 2 2 [1, 1, 1, 1, 2, 2, 2, 3] 1 풀이
function solution(k, tangerine) { const count = {}; tangerine.forEach(size => { count[size] = (count[size] || 0) + 1; }); const sortedArr = Object.values(count).sort((a, b) => b - a); let sum = 0; let type = 0; for(let num of sortedArr) { sum += num; type++; if(sum >= k) { break; } } return type; }
count라는 객체를 생성하여 배열을 forEach로 순회하면서 등장 횟수를 누적시킨다.
예를 들어, tangerine = [1, 3, 2, 5, 2, 3, 3] 일 경우,
count = { 1: 1, 3: 3, 2: 2, 5: 1 }
그 다음, Object.values(count)를 통해 등장 횟수만 추출하고 내림차순으로 정리한다.
sortedArr = [3, 2, 1, 1];
등장 횟수가 많은 순서대로 선택하며, total이 k 이상이 될 때 종료하고,
동시에 몇 종류를 사용했는지 type을 1씩 증가시키며 기록한다.
최종적으로 type을 반환한다.
'Coding Test > JavaScript' 카테고리의 다른 글
[프로그래머스 Level 1] [1차] 비밀지도 (JavaScript) (0) 2024.11.25 [프로그래머스 Level 2] 멀리 뛰기 (JavaScript) (0) 2024.11.24 [프로그래머스 Level 2] 숫자의 표현 (JavaScript) (0) 2024.11.24 [프로그래머스 Level 2] 카펫 (JavaScript) (0) 2024.11.04 [프로그래머스 Level 2] N개의 최소공배수 (JavaScript) (0) 2024.11.04