Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 쿼리
- JavaScript
- 프론트엔드
- 코드테스트
- 자바스크립트
- jpa
- Next.js
- 디자인 패턴
- 정리
- 프로그래머스
- 알고리즘
- 스프링
- 미니정리
- 스프링부트
- 백엔드
- 코드 테스트
- MySQL
- oracle
- spring
- BACK-END
- node.js
- SQL
- 서버
- 데이터베이스
- 프런트엔드
- java
- jsp
- 자바
- 오라클
- web
Archives
- Today
- Total
참치코더의 꿈 메모장
Javascript / 프로그래머스 - 귤 고르기 본문
728x90
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
function solution(k, tangerine) {
var answer = 0;
const freqMap = new Map();
for (const item of tangerine){
freqMap.set(item, (freqMap.get(item) || 0) + 1)
}
// 배열 변환 후 내림차순 정렬 [2,2,2,1,1]
const counts = [...freqMap.values()].sort((a, b) => b - a);
let remaining = k;
for(const count of counts){
remaining -= count;
answer++;
if(remaining <= 0) break;
}
return answer; }
|
cs |
- 경화가 한 상자에 담으려는 귤의 개수 k와 귤의 크기를 담은 배열 tangerine이 매개변수로 주어진다고
할때 경화가 귤 k개를 고를 때 크기가 서로 다른 종류의 수의 최솟값을 return 하도록 solution 함수를
작성하는 문제이다.
- 일단 Map을 선언하여 해당 귤의 종류의 분포도를 확인하려고 했다. 각각 귤의 크기별로 개수를 세었을때
많은 분포를 가진 귤부터 선별해 상자를 채운다면 서로 다른 종류의 수의 최솟값을 구할 수 있기 때문이다.
- for문으로 tangerine의 개수를 받아 새로 생성한 맵에 각 귤의 크기를 키값으로 주고, value값으로
만약 해당 크기의 귤이 없다면 0을 생성 있다면 1을 더하도록 값을 작성했다.
- 이후 해당 map의 value만 뽑아 내림차순 정렬해여 배열을 만들어 주었고
- 한번더 for문을 돌려 remaining에서 귤을 선별하는 것으로 만들어 주었다. 만약 귤이 담겼다면 해당 크기는
다 담긴것이므로 그것만큼 answer 에 카운트를 해주었고 조건문을 주어 remaining에 자리가 없다면
최솟값을 구한것 이므로 break를 해주어 answer를 반환한다.
- 이렇게 하면 정답을 구할 수 있다. ^^

728x90
'Javascript' 카테고리의 다른 글
| Javascript / 프로그래머스 - N개의 최소공배수 (0) | 2026.02.22 |
|---|---|
| Javascript / 프로그래머스 - 피보나치 수 (0) | 2026.02.16 |
| Javascript / 프로그래머스 - 구명보트(탐욕법) (0) | 2026.02.13 |
| Javascript / 비동기 정리 및 Promise, async, await 비교 (0) | 2025.10.28 |
| Javascript / 리덕스(Redux) - 개념 미니 정리 (0) | 2025.09.09 |
Comments