๐ฑ ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ์์ฐ๐ฑ
๐ ๋ฌธ์ ์ค๋ช ๐
๋ถ์๋ณ๋ก ์ ์ฒญํ ๊ธ์ก์ด ๋ค์ด์๋ ๋ฐฐ์ด d์ ์์ฐ budget์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ต๋ ๋ช ๊ฐ์ ๋ถ์์ ๋ฌผํ์ ์ง์ํ ์ ์๋์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
[๋ฌธ์ ๋๋ณด๊ธฐ]
S์ฌ์์๋ ๊ฐ ๋ถ์์ ํ์ํ ๋ฌผํ์ ์ง์ํด ์ฃผ๊ธฐ ์ํด ๋ถ์๋ณ๋ก ๋ฌผํ์ ๊ตฌ๋งคํ๋๋ฐ ํ์ํ ๊ธ์ก์ ์กฐ์ฌํ์ต๋๋ค. ๊ทธ๋ฌ๋, ์ ์ฒด ์์ฐ์ด ์ ํด์ ธ ์๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ๋ถ์์ ๋ฌผํ์ ๊ตฌ๋งคํด ์ค ์๋ ์์ต๋๋ค. ๊ทธ๋์ ์ต๋ํ ๋ง์ ๋ถ์์ ๋ฌผํ์ ๊ตฌ๋งคํด ์ค ์ ์๋๋ก ํ๋ ค๊ณ ํฉ๋๋ค.
๋ฌผํ์ ๊ตฌ๋งคํด ์ค ๋๋ ๊ฐ ๋ถ์๊ฐ ์ ์ฒญํ ๊ธ์ก๋งํผ์ ๋ชจ๋ ์ง์ํด ์ค์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด 1,000์์ ์ ์ฒญํ ๋ถ์์๋ ์ ํํ 1,000์์ ์ง์ํด์ผ ํ๋ฉฐ, 1,000์๋ณด๋ค ์ ์ ๊ธ์ก์ ์ง์ํด ์ค ์๋ ์์ต๋๋ค.
๐งธ ์ ํ ์ฌํญ ๐งธ
d๋ ๋ถ์๋ณ๋ก ์ ์ฒญํ ๊ธ์ก์ด ๋ค์ด์๋ ๋ฐฐ์ด์ด๋ฉฐ, ๊ธธ์ด(์ ์ฒด ๋ถ์์ ๊ฐ์)๋ 1 ์ด์ 100 ์ดํ์
๋๋ค.
d์ ๊ฐ ์์๋ ๋ถ์๋ณ๋ก ์ ์ฒญํ ๊ธ์ก์ ๋ํ๋ด๋ฉฐ, ๋ถ์๋ณ ์ ์ฒญ ๊ธ์ก์ 1 ์ด์ 100,000 ์ดํ์ ์์ฐ์์
๋๋ค.
budget์ ์์ฐ์ ๋ํ๋ด๋ฉฐ, 1 ์ด์ 10,000,000 ์ดํ์ ์์ฐ์์
๋๋ค.
function solution(d, budget) {
d.sort((a, b) => a - b);
let answer = 0;
for(let i = 0; i < d.length; i++) {
if(d[i] > budget) break;
budget -= d[i];
answer += 1;
}
return answer;
}
// d = [1,3,2,5,4], budget = 9๋ผ๋ฉด 3์ ๋ฆฌํดํฉ๋๋ค.
๐งธ ๋ฌธ์ ํ์ด ๐งธ
1. ์ต๋ํ ๋ง์ ๋ถ์๋ฅผ ์ง์ํ๊ธฐ ์ํด์ ์ง์ ๊ธ์ก์ด ์ ์ ๋ถ์๋ถํฐ ์ฃผ๋ ๊ฒ์ด ํจ์จ์ ์ด๋ฏ๋ก sort()๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํด์ค๋๋ค.
2. ๋ฐ๋ณต๋ฌธ์ ํตํด ํด๋น ๋ฐฐ์ด์ ๊ธธ์ด ๋งํผ ๋ฐ๋ณตํ์ฌ ๋ง์ฝ budget๋ณด๋ค d[i]๊ฐ ํฌ๋ค๋ฉด ๋ฐ๋ณต์ ๋ฉ์ถ๊ณ ์กฐ๊ฑด์์ด ์คํ๋๋๋ก ํฉ๋๋ค.
๐งธ ๋ค๋ฅธ ์ฌ๋์ ํ์ด ๐งธ
function solution(d, budget) {
return ~(~d.sort((a,b)=>a-b).map(v => budget -= v).findIndex(v => v < 0) || ~d.length);
}
findIndex์์ ์ฐพ๊ธฐ ์คํจ์ -1์ ๋ฆฌํดํ๋๋ฐ(๋ชจ๋ ์์ฐ์ ์ง๊ธํ ๊ฒฝ์ฐ) || ์ฐ์ฐ์์์ -1์ ์ฐธ์ผ๋ก ์ธ์ํ๋ ~์ฐ์ฐ์ ํตํด 0์ผ๋ก ๋ณ๊ฒฝ ํ || ์ฐ์ฐ์ ์งํํ๋ค๊ณ ํ๋ค์... ํํ...
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ (3) | 2022.12.06 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ (1) | 2022.12.06 |
ํ๋ก๊ทธ๋๋จธ์ค1๋จ๊ณ : ์ค๋ณต๋ ๋ฌธ์ ์ ๊ฑฐํ๊ธฐ (1) | 2022.12.01 |
ํ๋ก๊ทธ๋๋จธ์ค1๋จ๊ฒ : 3์ง๋ฒ ๋ค์ง๊ธฐ (0) | 2022.11.30 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : 7์ ๊ฐฏ์ ๊ตฌํ๊ธฐ (1) | 2022.11.29 |
๋๊ธ