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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ์ฝœ๋ผ ๋ฌธ์ œ

by ์ฝ”ํŒŒ์นด 2022. 11. 24.
728x90

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ์ฝœ๋ผ ๋ฌธ์ œ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต > ์—ฐ์Šต๋ฌธ์ œ > ์ฝœ๋ผ ๋ฌธ์ œ


๐Ÿ’ฉ ๋ฌธ์ œ ์„ค๋ช…

์˜ค๋ž˜์ „ ์œ ํ–‰ํ–ˆ๋˜ ์ฝœ๋ผ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝœ๋ผ ๋ฌธ์ œ์˜ ์ง€๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ •๋‹ต์€ ์•„๋ฌด์—๊ฒŒ๋„ ๋งํ•˜์ง€ ๋งˆ์„ธ์š”.
์ฝœ๋ผ ๋นˆ ๋ณ‘ 2๊ฐœ๋ฅผ ๊ฐ€์ ธ๋‹ค์ฃผ๋ฉด ์ฝœ๋ผ 1๋ณ‘์„ ์ฃผ๋Š” ๋งˆํŠธ๊ฐ€ ์žˆ๋‹ค. ๋นˆ ๋ณ‘ 20๊ฐœ๋ฅผ ๊ฐ€์ ธ๋‹ค์ฃผ๋ฉด ๋ช‡ ๋ณ‘์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”๊ฐ€?
๋‹จ, ๋ณด์œ  ์ค‘์ธ ๋นˆ ๋ณ‘์ด 2๊ฐœ ๋ฏธ๋งŒ์ด๋ฉด, ์ฝœ๋ผ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์—†๋‹ค.

๋ฌธ์ œ๋ฅผ ํ’€๋˜ ์ƒ๋นˆ์ด๋Š” ์ฝœ๋ผ ๋ฌธ์ œ์˜ ์™„๋ฒฝํ•œ ํ•ด๋‹ต์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ์ƒ๋นˆ์ด๊ฐ€ ํ‘ผ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šฐ์„  ์ฝœ๋ผ ๋นˆ ๋ณ‘ 20๋ณ‘์„ ๊ฐ€์ ธ๊ฐ€์„œ 10๋ณ‘์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋ฐ›์€ 10๋ณ‘์„ ๋ชจ๋‘ ๋งˆ์‹  ๋’ค, ๊ฐ€์ ธ๊ฐ€์„œ 5๋ณ‘์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. 5๋ณ‘ ์ค‘ 4๋ณ‘์„ ๋ชจ๋‘ ๋งˆ์‹  ๋’ค ๊ฐ€์ ธ๊ฐ€์„œ 2๋ณ‘์„ ๋ฐ›๊ณ , ๋˜ 2๋ณ‘์„ ๋ชจ๋‘ ๋งˆ์‹  ๋’ค ๊ฐ€์ ธ๊ฐ€์„œ 1๋ณ‘์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋ฐ›์€ 1๋ณ‘๊ณผ 5๋ณ‘์„ ๋ฐ›์•˜์„ ๋•Œ ๋‚จ์€ 1๋ณ‘์„ ๋ชจ๋‘ ๋งˆ์‹  ๋’ค ๊ฐ€์ ธ๊ฐ€๋ฉด 1๋ณ‘์„ ๋˜ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ƒ๋นˆ์ด๋Š” ์ด 10 + 5 + 2 + 1 + 1 = 19๋ณ‘์˜ ์ฝœ๋ผ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝœ๋ผ ๋ฌธ์ œ ๋ฌธ์ œ๋ฅผ ์—ด์‹ฌํžˆ ํ’€๋˜ ์ƒ๋นˆ์ด๋Š” ์ผ๋ฐ˜ํ™”๋œ ์ฝœ๋ผ ๋ฌธ์ œ๋ฅผ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๋นˆ ๋ณ‘ a๊ฐœ๋ฅผ ๊ฐ€์ ธ๋‹ค์ฃผ๋ฉด ์ฝœ๋ผ b๋ณ‘์„ ์ฃผ๋Š” ๋งˆํŠธ๊ฐ€ ์žˆ์„ ๋•Œ, ๋นˆ ๋ณ‘ n๊ฐœ๋ฅผ ๊ฐ€์ ธ๋‹ค์ฃผ๋ฉด ๋ช‡ ๋ณ‘์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ณ„์‚ฐํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ธฐ์กด ์ฝœ๋ผ ๋ฌธ์ œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ, ๋ณด์œ  ์ค‘์ธ ๋นˆ ๋ณ‘์ด a๊ฐœ ๋ฏธ๋งŒ์ด๋ฉด, ์ถ”๊ฐ€์ ์œผ๋กœ ๋นˆ ๋ณ‘์„ ๋ฐ›์„ ์ˆœ ์—†์Šต๋‹ˆ๋‹ค. ์ƒ๋นˆ์ด๋Š” ์—ด์‹ฌํžˆ ๊ณ ์‹ฌํ–ˆ์ง€๋งŒ, ์ผ๋ฐ˜ํ™”๋œ ์ฝœ๋ผ ๋ฌธ์ œ์˜ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒ๋นˆ์ด๋ฅผ ๋„์™€, ์ผ๋ฐ˜ํ™”๋œ ์ฝœ๋ผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ์ฃผ์„ธ์š”. ์ฝœ๋ผ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ๋งˆํŠธ์— ์ฃผ์–ด์•ผ ํ•˜๋Š” ๋ณ‘ ์ˆ˜ a, ๋นˆ ๋ณ‘ a๊ฐœ๋ฅผ ๊ฐ€์ ธ๋‹ค ์ฃผ๋ฉด ๋งˆํŠธ๊ฐ€ ์ฃผ๋Š” ์ฝœ๋ผ ๋ณ‘ ์ˆ˜ b, ์ƒ๋นˆ์ด๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋นˆ ๋ณ‘์˜ ๊ฐœ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ƒ๋นˆ์ด๊ฐ€ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ฝœ๋ผ์˜ ๋ณ‘ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

๐Ÿ’ฉ ์ œํ•œ ์กฐ๊ฑด

โ˜๏ธ 1 โ‰ค b < a โ‰ค n โ‰ค 1,000,000
โœŒ ์ •๋‹ต์€ ํ•ญ์ƒ int ๋ฒ”์œ„๋ฅผ ๋„˜์ง€ ์•Š๊ฒŒ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

๐Ÿ’ฉ ๋ฌธ์ œ ํ’€์ด

function solution(a, b, n) {
    let answer1, answer2, answer3, count = 0;
    // a๊ฐœ๋ฅผ ์ฃผ๋ฉด b๊ฐœ๋ฅผ ๋ฐ›๋Š”๋‹ค
    // ๋‚ด๊ฐ€ ๊ฐ€์ง„ ๋ณ‘ ์ˆ˜ n๊ฐœ
    while(n>=a){
        answer1 = Math.floor(n/a) * a; // ๊ฐ€์ ธ๊ฐ€๋Š” ๋ณ‘ ๊ฐœ์ˆ˜ 
        answer2 = n - answer1; // ๊ฐ€์ ธ๊ฐ€๋ฉด ๋‚จ๋Š” ๋ณ‘ ๊ฐœ์ˆ˜
        answer3 = answer1 / a * b; // ๋ฐ›๋Š” ๋ณ‘ ๊ฐœ์ˆ˜
        count += answer3;
        n = answer2 + answer3 // ๋‚จ๋Š” ๋ณ‘ ๊ฐœ์ˆ˜
    }
    return count;
}

๋ชป์ƒ๊ฒจ์„œ ์ฃผ์„ ์“ฐ๊ธฐ ์‹ซ์–ดํ•˜๋Š”๋ฐ ์จ๋ณด๋‹ˆ๊นŒ ํŽธํ•˜๋„ค์š”. ํ˜„์žฌ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ณ‘ ์ˆ˜๊ฐ€ ๋งˆํŠธ์—์„œ ์š”๊ตฌํ•˜๋Š” ๋ณ‘ ์ˆ˜๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ while๋ฌธ์œผ๋กœ ์ž‘์—…ํ•ด ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. while๋ฌธ๋„ ์ฒ˜์Œ ์จ ๋ด„. ํ—คํ—ค

๐Ÿ’ฉ ๋‹ค๋ฅธ ํ’€์ด

solution = (a, b, n) => Math.floor(Math.max(n - b, 0) / (a - b)) * b

ํ•ด์„ค์ด ํ•„์š”ํ•ด์š”...

728x90

๋Œ“๊ธ€

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿฆ™

CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘