๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/132267
์ค๋์ ์ ํํ๋ ์ฝ๋ผ ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์ฝ๋ผ ๋ฌธ์ ์ ์ง๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ ๋ต์ ์๋ฌด์๊ฒ๋ ๋งํ์ง ๋ง์ธ์.
์ฝ๋ผ ๋น ๋ณ 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 ๋ฒ์๋ฅผ ๋์ง ์๊ฒ ์ฃผ์ด์ง๋๋ค.
์ ์ถ๋ ฅ ์
a | b | n | result |
2 | 1 | 20 | 19 |
3 | 1 | 20 | 9 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ณธ๋ฌธ์์ ์ค๋ช ํ ์์์ ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋น ๋ณ 20๊ฐ ์ค 18๊ฐ๋ฅผ ๋งํธ์ ๊ฐ์ ธ๊ฐ์, 6๋ณ์ ์ฝ๋ผ๋ฅผ ๋ฐ์ต๋๋ค. ์ด๋ ์๋น์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ฝ๋ผ ๋ณ์ ์๋ 8(20 - 18 + 6 = 8)๊ฐ ์ ๋๋ค.
- ๋น ๋ณ 8๊ฐ ์ค 6๊ฐ๋ฅผ ๋งํธ์ ๊ฐ์ ธ๊ฐ์, 2๋ณ์ ์ฝ๋ผ๋ฅผ ๋ฐ์ต๋๋ค. ์ด๋ ์๋น์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ฝ๋ผ ๋ณ์ ์๋ 4(8 - 6 + 2 = 4)๊ฐ ์ ๋๋ค.
- ๋น ๋ณ 4๊ฐ ์ค 3๊ฐ๋ฅผ ๋งํธ์ ๊ฐ์ ธ๊ฐ์, 1๋ณ์ ์ฝ๋ผ๋ฅผ ๋ฐ์ต๋๋ค. ์ด๋ ์๋น์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ์ฝ๋ผ ๋ณ์ ์๋ 2(4 - 3 + 1 = 2)๊ฐ ์ ๋๋ค.
- 3๋ฒ์ ๊ตํ ๋์ ์๋น์ด๋ 9(6 + 2 + 1 = 9)๋ณ์ ์ฝ๋ผ๋ฅผ ๋ฐ์์ต๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
class Solution {
public int solution(int a, int b, int n) {
int answer = 0;
while(true) {
if (n < a) {
break;
}
answer += (n / a) * b;
n = ((n / a * b) + (n % a));
}
return answer;
}
}
์ฝ๋ ์ค๋ช
- int answer = 0 : ์ต์ข ์ ์ผ๋ก ๋ฐ์ ์ ์๋ ์ฝ๋ผ์ ์๋ฅผ ์ ์ฅํ ๋ณ์ answer๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
- while (true) { } : ๋ฌดํ ๋ฐ๋ณต๋ฌธ์ผ๋ก, ์กฐ๊ฑด์ ๋ฐ๋ผ break๋ฅผ ํตํด ์ข
๋ฃ๋๋ค.
- if (n < a) { break } : if๋ฌธ์ ์ฌ์ฉํด์ n์ด a๋ณด๋ค ์์ ๊ฒฝ์ฐ while ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํ๋ค.
- answer += (n / a) * b : ํ์ฌ ๋น ๋ณ์ ์๋ฅผ a๋ก ๋๋๊ณ b๋ฅผ ๊ณฑํ ๊ฐ์ธ ๊ตํ ๊ฐ๋ฅํ ํ์์ ๋ฐ๋ผ ์๋ก ๋ฐ๊ฒ ๋ ์ฝ๋ผ์ ์๋ฅผ answer ๋ณ์์ ์ ์ฅํ๋ค.
- n = ((n / a * b) + (n % a)) : ๊ตํํ๊ณ ์๋ก ๋ฐ์ ์ฝ๋ผ์ ์(n / a * b)์ ๊ตํ ํ ๋จ์ ๋น ๋ณ ์(n % a)์ ๊ฐ์ ๋ํ๊ณ n์ ์ ์ฅํ๋ฉด์ n์ ๊ฐ์ ๊ฐฑ์ ํ๋ค.
'ํ๋ก๊ทธ๋๋จธ์ค > ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค_2016๋ (1) | 2024.12.13 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค_๋ช ์์ ์ ๋น(1) (1) | 2024.12.12 |
ํ๋ก๊ทธ๋๋จธ์ค_ํธ๋ ํ์ดํธ ๋ํ (0) | 2024.12.10 |
ํ๋ก๊ทธ๋๋จธ์ค_๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ ๊ธ์ (0) | 2024.12.09 |
ํ๋ก๊ทธ๋๋จธ์ค_๋ ๊ฐ ๋ฝ์์ ๋ํ๊ธฐ (0) | 2024.12.05 |