
k = ๊ฒฝํ๊ฐ ๊ณ ๋ฅธ ๊ทค
tangerine[] = ์ํํ ๊ทค์ ํฌ๊ธฐ๋ฅผ ๋ด์ ๋ฐฐ์ด
๊ฒฝํ๋ ์ต๊ณ ์ ํจ์จ์ฑ์ ์ข์ํ๋ค. ํฌ๊ธฐ๊ฐ ํฌ๋ ์๋ ์๊ด์์ด ์ต์ํ์ ์ข ๋ฅ์ ๊ทค์ ๊ณ ๋ฅด๊ณ ์ถ์ด ํ๋ค. ์ด๋ฒ์๋ ์ด์ํ ์ฌ๋์ด๋ค.
์๋ฅผ ๋ค์ด ๊ฒฝํ๊ฐ ์ํํ ๊ทค 8๊ฐ์ ํฌ๊ธฐ๊ฐ [1, 1, 2, 2, 2, 3, 4, 5] ์๊ณ 3๊ฐ๋ฅผ ๊ณ ๋ฅธ๋ค๋ฉด 2 ํฌ๊ธฐ์ ๊ทค์ด 3๊ฐ ์์ผ๋ฏ๋ก ์๋ก ๋ค๋ฅธ ์ข ๋ฅ์ ์ 1์ ๋ฐํํ๋ค.
๋ฌธ์ ๋ฅผ ๋ณด์๋ง์ map ์๋ฃ๊ตฌ์กฐ๊ฐ ์๊ฐ๋ฌ๋ค. map์ ์ด์ฉํ์ฌ ์ข ๋ฅ๋ณ๋ก ๊ฐฏ์๋ฅผ ์ฒดํฌํ๊ณ ์ ๋ ฌํ์ฌ ๊ฐ์ ๊ตฌํ๋ฉด ๋๋ค.
function solution(k, tangerine) {
var answer = 0;
const map = new Map();
for(let i = 0;i < tangerine.length;i++){
if(map.has(tangerine[i])){
map.set(tangerine[i], map.get(tangerine[i]) + 1);
} else {
map.set(tangerine[i], 1);
}
}
const mapToArr = Array.from(map).sort((a, b) => b[1] - a[1]);
for(let i = 0;i < mapToArr.length;i++){
k -= mapToArr[i][1];
answer++;
if(k <= 0){
break;
}
}
return answer;
}
function solution(k, tangerine) {
let answer = 0;
const map = new Map();
tangerine.forEach(t => {
map.set(t, (map.get(t) || 0) + 1);
});
const sortedMapToArray = Array.from(map).sort((a, b) => b[1] - a[1]);
for (let i = 0; i < sortedArray.length; i++) {
k -= sortedArray[i][1];
answer++;
if (k <= 0) {
break;
}
}
return answer;
}
์ผ๋จ ๊ฒฝํ๋ ๊ฐ๋ฐ์๋ฅผ ์๊ทนํ๋ ํ์ด ์๋ค. ๋๋ถ์ ๋ฌธ์ ๋ฅผ ์ ํ์๋ค. ๋ ๋ฒจ 2 ์ด์์ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์๋ฃ๊ตฌ์กฐ์ ๋ํด ๋ ๊น์ด ๊ณต๋ถํด์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ์ด๋ก ์ ์ผ๋ก ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ดํดํ๋ ๊ฒ๋ ์ค์ํ์ง๋ง, ์ค์ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๋ฉด์ ์ง์ ์ ์ฉํด๋ณด๋ ๊ฒ์ด ํจ์ฌ ๋ ํฐ ๋์์ด ๋๋ค๊ณ ์๊ฐํ๋ค.