ํ๋ก๊ทธ๋๋จธ์ค 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
ํด์ค์ด ํ์ํด์...
'Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ๊ฐ์ ์ซ์๋ ์ซ์ด (2) | 2022.11.27 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ๋ชจ์๊ณ ์ฌ (3) | 2022.11.24 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ (1) | 2022.11.24 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ์ฝ๋ผ์ธ ์ถ์ธก (1) | 2022.11.23 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ๋ฌธ์์ด ๋ค๋ฃจ๊ธฐ ๊ธฐ๋ณธ (2) | 2022.11.22 |
๋๊ธ