๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/12945
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
ํผ๋ณด๋์น ์๋ F(0) = 0, F(1) = 1์ผ ๋, 1 ์ด์์ n์ ๋ํ์ฌ F(n) = F(n-1) + F(n-2) ๊ฐ ์ ์ฉ๋๋ ์ ์ ๋๋ค.
์๋ฅผ๋ค์ด
- F(2) = F(0) + F(1) = 0 + 1 = 1
- F(3) = F(1) + F(2) = 1 + 1 = 2
- F(4) = F(2) + F(3) = 1 + 2 = 3
- F(5) = F(3) + F(4) = 2 + 3 = 5
์ ๊ฐ์ด ์ด์ด์ง๋๋ค.
2 ์ด์์ n์ด ์ ๋ ฅ๋์์ ๋, n๋ฒ์งธ ํผ๋ณด๋์น ์๋ฅผ 1234567์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๋ฆฌํดํ๋ ํจ์, solution์ ์์ฑํด ์ฃผ์ธ์.
์ ํ ์ฌํญ
- n์ 2 ์ด์ 100,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
n | return |
3 | 2 |
5 | 5 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ํผ๋ณด๋์น์๋ 0๋ฒ์งธ๋ถํฐ 0, 1, 1, 2, 3, 5, ... ์ ๊ฐ์ด ์ด์ด์ง๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
class Solution {
public int solution(int n) {
// ์ด์ ์ ์ด์ ์ (F(n-2))
int num1 = 0;
// ์ด์ ์ (F(n-1)), ์ฒ์์ F(1) = 1
int answer = 1;
// ํ์ฌ ํผ๋ณด๋์น ์ ๊ณ์ฐํ ํ์
int count = 1;
// count๊ฐ n์ ๋๋ฌํ ๋๊น์ง ๋ฐ๋ณต
while (count < n) {
// num์ ์ด์ ์ ์ด์ ์ ์ ์ฅ (F(n-2))
int num = num1;
// num1์ ์ด์ ์ ์ ์ฅ F(n-1))
num1 = answer;
// ํ์ฌ ํผ๋ณด๋์น ์ ๊ณ์ฐ
answer = (num + num1) % 1234567;
// ๋ค์ ์ ์งํ
count++;
}
// answer ๋ฐํ
return answer;
}
}
๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ์๊ฐํ ๋ฐฉํฅ
๋ณ์์ ์ ์ฅ๋ ๊ฐ์ ๊ณ์ ๋ฐ๊ฟ์ฃผ๋ฉด์ ์ฃผ์ด์ง ๊ฐ๊น์ง ๋ฐ๋ณตํ๊ณ ์ต์ข
๊ฒฐ๊ณผ๋ฅผ ํ์ธํด์ผ ํ๋ค.
n์ด 100,000 ์ดํ์ด๊ธฐ ๋๋ฌธ์ 1,234,567์ผ๋ก ๋๋ด์ ๋ ๋๋จธ์ง๋ ์๊ธฐ ์์ ์ด๋ค.
answer์ ๋๋จธ์ง๋ฅผ ์ ์ฅํ๋ฉด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. answer์๋ ์๋์ ์ผ๋ก ๋ง์ง๋ง ๊ฐ์ด ์ ์ฅ๋๋ค.
'๐งฉ ํ๋ก๊ทธ๋๋จธ์ค > ๐ต ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์นดํซ (1) | 2025.04.22 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ (1) | 2025.04.18 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ๋ค์ ํฐ ์ซ์ (1) | 2025.04.16 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ์ซ์์ ํํ (0) | 2025.04.16 |
[ํ๋ก๊ทธ๋๋จธ์ค/Java] ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ ๋ฌธ์์ด (0) | 2025.04.15 |