๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Javascript] ์‹ค์ „ ๋Œ€๋น„ ๋ชจ์˜๊ณ ์‚ฌ 3์ฐจ 1๋ฒˆ

a๊ฐœ์˜ ๋นˆ๋ณ‘์„ ๊ฐ€์ ธ๋‹ค ์ฃผ๋ฉด b๊ฐœ์˜ ์ฝœ๋ผ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์„ ๋•Œ, n๊ฐœ์˜ ๋นˆ๋ณ‘์œผ๋กœ ์ตœ๋Œ€ ๋ช‡๊ฐœ์˜ ์ฝœ๋ผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

์ ‘๊ทผ ๋ฐฉ๋ฒ•

๋นˆ๋ณ‘์ด a์˜ ์ˆ˜๋ณด๋‹ค ์ž‘์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉด ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

while(emptyCola >= a){
    // ... Add : cola ๊ตฌํ•˜๊ธฐ
}โ€‹


๋งŒ์•ฝ 10๊ฐœ์˜ ๋นˆ๋ณ‘์ด ์žˆ๊ณ  ๋นˆ๋ณ‘ 3๊ฐœ๋‹น ์ฝœ๋ผ 1๊ฐœ๋ฅผ ์ค€๋‹ค๋ฉด
3๊ฐœ์˜ ์ฝœ๋ผ์™€ 1๊ฐœ์˜ ๋นˆ๋ณ‘์ด ๋‚จ๊ณ , 

3๊ฐœ์˜ ์ฝœ๋ผ๋ฅผ ๋งˆ์‹œ๋ฉด ๊ฒฐ๊ตญ 4๊ฐœ์˜ ๋นˆ๋ณ‘์ด ๋‚จ๋Š”๋‹ค. 

์ด์ฒ˜๋Ÿผ ์ฝœ๋ผ์˜ ๊ฐœ์ˆ˜์™€ ๊ตํ™˜ ํ›„ ๋‚จ์€ ๋นˆ๋ณ‘์„ ๋”ฐ๋กœ ๊ตฌํ•ด์„œ ๋งˆ์ง€๋ง‰์— ํ•ฉ์ณ์ฃผ๋Š” ๋กœ์ง์ด ํ•„์š”ํ•˜๋‹ค.

while(emptyCola >= a){
    const cola = parseInt(emptyCola / a) * b;

    emptyCola = emptyCola - (cola / b * a);
    answer += cola;
    emptyCola = emptyCola + cola;
}

 
a : ์ฝœ๋ผ 1๊ฐœ๋‹น ํ•„์š”ํ•œ ๋นˆ๋ณ‘์˜ ๊ฐœ์ˆ˜
b : ๋นˆ ๋ณ‘์„ a๊ฐœ ๋งŒํผ ์ฃผ๋ฉด ๋ฐ›๋Š” ์ฝœ๋ผ์˜ ๊ฐœ์ˆ˜
emptyCola : ๋นˆ๋ณ‘์˜ ๊ฐœ์ˆ˜ (์ดˆ๊ธฐ๊ฐ’ n)

1. ๋จผ์ € ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ฝœ๋ผ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ ,
2. ๊ตํ™˜ํ•˜๊ณ  ๋‚จ์€ ๋นˆ๋ณ‘์˜ ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.
3. answer์— ์–ป์€ cola์˜ ์ˆ˜๋ฅผ ๋‹ด๊ณ ,
4. ๊ตํ™˜ํ•˜๊ณ  ๋‚จ์€ ๋นˆ๋ณ‘๊ณผ ์ฝœ๋ผ์˜ ์ˆ˜๋ฅผ ํ•ฉ์ณ์„œ emptyCola์˜ ์ˆ˜๋ฅผ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.

 

function solution(a, b, n) {
    var answer = 0;
    let emptyCola = n;

    while(emptyCola >= a){
        const cola = parseInt(emptyCola / a) * b;

        emptyCola = emptyCola - (cola / b * a);
        answer += cola;
        emptyCola = emptyCola + cola;
    }

    return answer;
}