๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ์˜ˆ์‚ฐ

by _ํ† ๋งคํ†  2022. 12. 2.
728x90

๐Ÿ–ฑ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 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์œผ๋กœ ๋ณ€๊ฒฝ ํ›„ || ์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ–ˆ๋‹ค๊ณ  ํ•˜๋„ค์š”... ํ•˜ํ•˜...

728x90

๋Œ“๊ธ€


Lucky Charms Rainbow
js
html
css