๊ฒฝํ๋ ๊ณผ์์์์ ๊ทค์ ์ํํ์ต๋๋ค. ๊ฒฝํ๋ ์ํํ ๊ทค ์ค 'k'๊ฐ๋ฅผ ๊ณจ๋ผ ์์ ํ๋์ ๋ด์ ํ๋งคํ๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ํํ ๊ทค์ ํฌ๊ธฐ๊ฐ ์ผ์ ํ์ง ์์ ๋ณด๊ธฐ์ ์ข์ง ์๋ค๊ณ ์๊ฐํ ๊ฒฝํ๋ ๊ทค์ ํฌ๊ธฐ๋ณ๋ก ๋ถ๋ฅํ์ ๋ ์๋ก ๋ค๋ฅธ ์ข ๋ฅ์ ์๋ฅผ ์ต์ํํ๊ณ ์ถ์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๊ฒฝํ๊ฐ ์ํํ ๊ทค 8๊ฐ์ ํฌ๊ธฐ๊ฐ [1, 3, 2, 5, 4, 5, 2, 3] ์ด๋ผ๊ณ ํฉ์๋ค. ๊ฒฝํ๊ฐ ๊ทค 6๊ฐ๋ฅผ ํ๋งคํ๊ณ ์ถ๋ค๋ฉด, ํฌ๊ธฐ๊ฐ 1, 4์ธ ๊ทค์ ์ ์ธํ ์ฌ์ฏ ๊ฐ์ ๊ทค์ ์์์ ๋ด์ผ๋ฉด, ๊ทค์ ํฌ๊ธฐ์ ์ข ๋ฅ๊ฐ 2, 3, 5๋ก ์ด 3๊ฐ์ง๊ฐ ๋๋ฉฐ ์ด๋๊ฐ ์๋ก ๋ค๋ฅธ ์ข ๋ฅ๊ฐ ์ต์์ผ ๋์ ๋๋ค.
๊ฒฝํ๊ฐ ํ ์์์ ๋ด์ผ๋ ค๋ ๊ทค์ ๊ฐ์ k์ ๊ทค์ ํฌ๊ธฐ๋ฅผ ๋ด์ ๋ฐฐ์ด tangerine
์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๊ฒฝํ๊ฐ ๊ทค k
๊ฐ๋ฅผ ๊ณ ๋ฅผ ๋ ํฌ๊ธฐ๊ฐ ์๋ก ๋ค๋ฅธ ์ข
๋ฅ์ ์์ ์ต์๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
k
โค tangerine
์ ๊ธธ์ด โค 100,000tangerine
์ ์์ โค 10,000,000k | 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 |
์ ์ถ๋ ฅ ์ #1
๋ณธ๋ฌธ์์ ์ค๋ช ํ ์์์ ๋๋ค.
์ ์ถ๋ ฅ ์ #2
๊ฒฝํ๋ ํฌ๊ธฐ๊ฐ 2์ธ ๊ทค 2๊ฐ์ 3์ธ ๊ทค 2๊ฐ ๋๋ 2์ธ ๊ทค 2๊ฐ์ 5์ธ ๊ทค 2๊ฐ ๋๋ 3์ธ ๊ทค 2๊ฐ์ 5์ธ ๊ทค 2๊ฐ๋ก ๊ทค์ ํ๋งคํ ์ ์์ต๋๋ค. ์ด๋์ ํฌ๊ธฐ ์ข ๋ฅ๋ 2๊ฐ์ง๋ก ์ด ๊ฐ์ด ์ต์๊ฐ ๋ฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
๊ฒฝํ๋ ํฌ๊ธฐ๊ฐ 1์ธ ๊ทค 2๊ฐ๋ฅผ ํ๋งคํ๊ฑฐ๋ 2์ธ ๊ทค 2๊ฐ๋ฅผ ํ๋งคํ ์ ์์ต๋๋ค. ์ด๋์ ํฌ๊ธฐ ์ข ๋ฅ๋ 1๊ฐ์ง๋ก, ์ด ๊ฐ์ด ์ต์๊ฐ ๋ฉ๋๋ค.
function solution(k, tangerine) {
// ์ ๋ต
let result = 0
// ๊ทค ํฌ๊ธฐ ๋ณ ์๋์ ๋ด์ ๋ฐฐ์ด
const sizes = {}
tangerine.forEach(a => {
sizes[a] = ++sizes[a] || 1
})
// ๋ด๊ธด ์๋ ๋ณ ๋ด๋ฆผ์ฐจ ์ ์ ๋ ฌ
const nums = Object.values(sizes).sort((a,b) => b-a)
// ๊ทค์ด ๋ชจ๋ ๋ด๊ธธ ๋๊น์ง ๋ฐ๋ณต
for(let i = 0 ; k > 0 ; i ++) {
result++
k-=nums[i]
}
return result
}