반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 sort
- js 알고리즘
- 맨해튼거리
- Javascript 정렬
- 타입스크립트
- 자바스크립트 알고리즘
- 자바스크립트 정렬
- TS
- binary search
- 프로그래머스 신규아이디추천
- 키패드누르기풀이
- 깃허브
- 자료구조
- JavaScript
- 오블완
- 맨해튼거리예제
- 자바스크립트 배열
- MySQL
- node.js
- 티스토리챌린지
- 정규표현식문제
- 프로그래머스 자바스크립트
- TypeScript
- 프로그래머스 자바스크립트 풀이
- mysql스키마
- 좌표거리구하기
- 프로그래머스
- next.js
- 정렬 알고리즘
- 알고리즘
Archives
- Today
- Total
FE PARADISE
프로그래머스 귤 고르기 - 자바스크립트 풀이 🍊 본문
반응형
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
k: 🍊 귤의 개수 (1 ≤ k ≤ tangerine의 길이 ≤ 100,000)
tangerine: 귤의 크기를 담은 배열 (1 ≤ tangerine의 원소 ≤ 10,000,000)
핵심: 귤 k개를 고를 때 크기가 서로 다른 종류의 수의 최솟값을 return
자바스크립트 풀이
전체 코드
function solution(k, tangerine) {
let result = 0;
let count = {};
tangerine.forEach(x => {
count[x] = (count[x] || 0) + 1;
});
const frequency = Object.values(count).sort((a,b)=> b-a);
for(let freq of frequency){
if(k <= 0) break;
else {
result++;
k -= freq;
}
}
return result;
}
result: 담는 종류의 수 최솟값
count: 귤 크기별 개수
frequency: 귤 크기별 개수를 담은 배열로 내림차순으로 정렬됨
우선, 귤을 크기별 개수를 count 변수에 담는다 🍊
k: 6, tangerine: [1, 3, 2, 5, 4, 5, 2, 3] 인 경우
tangerine.forEach(x => {
count[x] = (count[x] || 0) + 1;
});
위와 같은 과정을 거치면 count는 { '1': 1, '2': 2, '3': 2, '4': 1, '5': 2 } 이다.
const frequency = Object.values(count).sort((a,b)=> b-a);
for(let freq of frequency){
if(k <= 0) break;
else {
result++;
k -= freq;
}
}
frequency는 [2,2,2,1,1]이다. 순서대로 [크기가 2인 귤의 개수, 크기가 3인 귤의 개수, 크기가 5인 귤의 개수, 크기가 1인 귤의 개수, 크기가 4인 귤의 개수] 인 것이다.
frequency 를 내림차순 정렬하는 이유는 개수가 많은 귤부터 골라야 고른 귤의 크기 종류수가 최소가 되기 때문이다.
frequency를 for문으로 돌면서 k가 1 이상인 경우 주어진 k에서 귤의 개수를 차감한다.
k가 0이 되면 for문이 종료된다.
return result;
그리고 result를 반환하면 완성이다.
반응형
'자료구조 & 알고리즘' 카테고리의 다른 글
프로그래머스 영어 끝말잇기 - 자바스크립트 풀이 (0) | 2025.01.01 |
---|---|
프로그래머스 구명보트 - 자바스크립트 풀이 ⛵︎ (0) | 2024.12.11 |
프로그래머스 카펫 - 자바스크립트 풀이 (0) | 2024.12.10 |
프로그래머스 다음 큰 숫자 - 자바스크립트 풀이 (0) | 2024.12.08 |
프로그래머스 피보나치 수 - 자바스크립트 풀이 (0) | 2024.12.04 |