ํ์ด ๋ ์ง : 2025.04.25
๋ฌธ์ ์ ํ : ์ฐ์ต ๋ฌธ์
๋ฌธ์ ์ ๋ชฉ : ์์ฐ
๋ฌธ์ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/12982
Intuition
- ์ ํด์ง ์์ฐ์์ ๋ถ์์์ ์ ์ฒญํ ๊ธ์ก์ ์ง์ํด์ค ๋, ์ต๋ ๋ช ๊ฐ ๋ถ์์ ์ง์ํด์ค ์ ์๋์ง ๊ตฌํด์ผ ํ๋ค.
- ์ ์ฒญํ ๊ธ์ก์ด ์์ ๋ถ์๋ค๋ถํฐ ์ง์ํด์ผ ์ต๋ํ ๋ง์ ๋ถ์์ ์ง์ํ ์ ์๋ค.
- ํ์ฌ ์ํฉ์์ ๊ฐ์ฅ ์ต์ ์ธ ์ ํ์ ๋ฐ๋ณตํด์ ์ ์ฒด ์ต์ ํด๋ฅผ ๊ตฌํ๋ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ก๋ ๋ณผ ์ ์๊ฒ ๋ค.
Approach
- ๋ถ์์ ์ ์ฒญ ๊ธ์ก์ด ๋ด๊ธด ๋ฐฐ์ด d๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
- ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ d๋ฅผ ์ํํ๋ฉฐ, ๋ถ์์ ์ ์ฒญ ๊ธ์ก(amount)์ด ๋จ์ ์์ฐ(budget) ๋ณด๋ค ์์ผ๋ฉด ์ง์ํ ๋ถ์ ์(count)๋ฅผ 1 ๋๋ฆฐ๋ค.
- count๋ฅผ ๋ฐํํ๋ค.
Complexity
- Time complexity :
O(n log n)
- d์ ๊ธธ์ด๋ฅผ n์ด๋ผ๊ณ ํ ๋ ์ ๋ ฌ์ O(n log n), d๋ฅผ ์ํํ๋๋ฐ O(n)์ผ๋ก, ๊ฒฐ๊ณผ์ ์ผ๋ก O(n log n)์ด๋ค.
- Splace complexity :
O(1)
- ์ ๋ ฅ๊ฐ์ ์ ์ธํ๋ฉด ์ถ๊ฐ ์ฌ์ฉ ๊ณต๊ฐ์ด ๊ฑฐ์ ์๋ค.
Code (JS)
function solution(d, budget) {
let count = 0;
d.sort((a, b) => a - b); // ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
d.forEach((amount) => {
if (budget - amount >= 0) {
budget -= amount;
count += 1;
}
})
return count;
}
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด > Programmers - Lv.1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค Lv.1] ํธ๋ ํ์ดํธ ๋ํ (0) | 2025.05.01 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค Lv.1] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (0) | 2025.04.28 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.1] ์ต์์ง์ฌ๊ฐํ (0) | 2025.04.25 |
[ํ๋ก๊ทธ๋๋จธ์ค Lv.1] ๊ณต์ ์ฐ์ฑ (0) | 2025.04.24 |