๋ฌธ์
ํผ๋ณด๋์น ์๋ 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 |
์ ์ถ๋ ฅ ์ ์ค๋ช
ํผ๋ณด๋์น์๋ 0๋ฒ์งธ๋ถํฐ 0, 1, 1, 2, 3, 5, ... ์ ๊ฐ์ด ์ด์ด์ง๋๋ค.
ํ์ด
์ฒ์ ์์ฑ ์ฝ๋
class Solution {
public int solution(int n) {
int answer = 0;
int[] Fibo = new int[n+1];
Fibo[0] = 0;
Fibo[1] = 1;
//F(n)๊น์ง์ ๊ฐ ํผ๋ณด๋์น ์ ๋์
for(int i=2; i<=n; i++){
Fibo[i] = (Fibo[i-1] + Fibo[i-2]);
}
answer = Fibo[n] % 1234567;
return answer;
}
}
์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ฝ๋์ด๋ค.
!๋ฌธ์ : ์ฃผ์ด์ง ํ ์คํธ์ผ์ด์ค 2๊ฐ๋ ํต๊ณผํ์ผ๋, ์ ์ถ ์ 14๊ฐ ์ค 7๊ฐ์ ํ ์คํธ๋ง ํต๊ณผํ์๋ค.
!์์ธ: Fibo์ ์๋ฃํ ๋ฒ์๋ฅผ ์ด๊ณผํ๋ค.
Fibo์ ์๋ฃํ์ int์ด๋ค. int๋ -2,147,483,648 ~ 2,147,483,647๊น์ง์ ๊ฐ๋ง์ ํํํ ์ ์๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ 1์ ๋ํ๊ฒ ๋๋ฉด ๊ทธ ์ซ์๋ 2,147,483,647์ด ์๋ -2,147,483,648์ด ๋๋ค.
ํผ๋ณด๋์น ์๋ ์๊ฐ ์์ฒญ๋๊ฒ ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ๋ค. 44๋ฒ์งธ ํผ๋ณด๋์น ์๋ง ๊ฐ๋ 2,971,215,073์ผ๋ก int์ ๋ฒ์๋ฅผ ๋์ด๋ฒ๋ฆฐ๋ค. ๋ฐ๋ผ์ ์์ ์ฝ๋์ฒ๋ผ Fibo์ ํฐ ๊ฐ์ ๋ฃ๊ฒ ๋๋ฉด ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์์ํ ๊ฐ๊ณผ ๋ค๋ฅธ ๊ฐ์ด ์ถ๋ ฅ๋ ์ ๋ฐ์ ์๋ค.
๋ฐ๋ผ์, ๋ฌธ์ ์์ n๋ฒ์งธ ํผ๋ณด๋์น ์๋ฅผ 1234567๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ผ๋ ์ด์ ๋
1234567๋ก ๋๋ ๋๋จธ์ง๋ ํญ์ 1234567๋ณด๋ค ์์ ์ ๋ฐ์ ์๊ณ , ๊ณ์ฐํ ํผ๋ณด๋์น ์๋ฅผ 1234567๋ก ๋๋ ๋ ์๋์ ํผ๋ณด๋์น ์์ ์๋ฒฝํ๊ฒ ๋์ผํ ์ซ์๊ฐ ๋์ค๊ธฐ ๋๋ฌธ์ด๋ค.
์ต์ข ์์ ์ฝ๋
class Solution {
public int solution(int n) {
int answer = 0;
int[] Fibo = new int[n+1];
Fibo[0] = 0;
Fibo[1] = 1;
//F(n)๊น์ง์ ๊ฐ ํผ๋ณด๋์น ์ ๋์
for(int i=2; i<=n; i++){
// 99999์ ๊ฐ์ด ํฐ ์๋ฅผ ๋ฃ์ ๊ฒฝ์ฐ int์ longํ์
์ ๋ฒ์๋ฅผ ๋์ด
// ๊ฐ๋ค์ ๋ฌธ์ ์กฐ๊ฑด์ ๋ง๊ฒ 1234567๋ก ๋๋ ๋๋จธ์ง๋ก ์ ์ฅ
Fibo[i] = (Fibo[i-1] + Fibo[i-2])%1234567;
}
answer = Fibo[n];
return answer;
}
}
Fibo์ ์๋ฃํ์ ๋ง๋๋ก Fibo๋ฅผ ๊ณ์ฐํ ๋ 1234567๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ ์ฅํ๋๋ก ์์ ํ๋ค.
'๐ Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ๋ชจ์ ์ ๊ฑฐ(์๋ฐ) (0) | 2023.03.30 |
---|---|
[Programmers] ํฉํ ๋ฆฌ์ผ(์๋ฐ) (0) | 2023.03.29 |
[Programmers] ๋ชจ์ค๋ถํธ(1)(์๋ฐ) (0) | 2023.03.27 |
[Programmers] ๋ฐ๋ณต๋ฌธ ์ถ๋ ฅํ๊ธฐ(์๋ฐ) (0) | 2023.03.25 |
[Programmers] ํผ์ ๋๋ ๋จน๊ธฐ(2)(์๋ฐ) (0) | 2023.03.21 |
๋ฌธ์
ํผ๋ณด๋์น ์๋ 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 |
์ ์ถ๋ ฅ ์ ์ค๋ช
ํผ๋ณด๋์น์๋ 0๋ฒ์งธ๋ถํฐ 0, 1, 1, 2, 3, 5, ... ์ ๊ฐ์ด ์ด์ด์ง๋๋ค.
ํ์ด
์ฒ์ ์์ฑ ์ฝ๋
class Solution {
public int solution(int n) {
int answer = 0;
int[] Fibo = new int[n+1];
Fibo[0] = 0;
Fibo[1] = 1;
//F(n)๊น์ง์ ๊ฐ ํผ๋ณด๋์น ์ ๋์
for(int i=2; i<=n; i++){
Fibo[i] = (Fibo[i-1] + Fibo[i-2]);
}
answer = Fibo[n] % 1234567;
return answer;
}
}
์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ฝ๋์ด๋ค.
!๋ฌธ์ : ์ฃผ์ด์ง ํ ์คํธ์ผ์ด์ค 2๊ฐ๋ ํต๊ณผํ์ผ๋, ์ ์ถ ์ 14๊ฐ ์ค 7๊ฐ์ ํ ์คํธ๋ง ํต๊ณผํ์๋ค.
!์์ธ: Fibo์ ์๋ฃํ ๋ฒ์๋ฅผ ์ด๊ณผํ๋ค.
Fibo์ ์๋ฃํ์ int์ด๋ค. int๋ -2,147,483,648 ~ 2,147,483,647๊น์ง์ ๊ฐ๋ง์ ํํํ ์ ์๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ 1์ ๋ํ๊ฒ ๋๋ฉด ๊ทธ ์ซ์๋ 2,147,483,647์ด ์๋ -2,147,483,648์ด ๋๋ค.
ํผ๋ณด๋์น ์๋ ์๊ฐ ์์ฒญ๋๊ฒ ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ๋ค. 44๋ฒ์งธ ํผ๋ณด๋์น ์๋ง ๊ฐ๋ 2,971,215,073์ผ๋ก int์ ๋ฒ์๋ฅผ ๋์ด๋ฒ๋ฆฐ๋ค. ๋ฐ๋ผ์ ์์ ์ฝ๋์ฒ๋ผ Fibo์ ํฐ ๊ฐ์ ๋ฃ๊ฒ ๋๋ฉด ๋ฒ์๋ฅผ ๋ฒ์ด๋ ์์ํ ๊ฐ๊ณผ ๋ค๋ฅธ ๊ฐ์ด ์ถ๋ ฅ๋ ์ ๋ฐ์ ์๋ค.
๋ฐ๋ผ์, ๋ฌธ์ ์์ n๋ฒ์งธ ํผ๋ณด๋์น ์๋ฅผ 1234567๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ผ๋ ์ด์ ๋
1234567๋ก ๋๋ ๋๋จธ์ง๋ ํญ์ 1234567๋ณด๋ค ์์ ์ ๋ฐ์ ์๊ณ , ๊ณ์ฐํ ํผ๋ณด๋์น ์๋ฅผ 1234567๋ก ๋๋ ๋ ์๋์ ํผ๋ณด๋์น ์์ ์๋ฒฝํ๊ฒ ๋์ผํ ์ซ์๊ฐ ๋์ค๊ธฐ ๋๋ฌธ์ด๋ค.
์ต์ข ์์ ์ฝ๋
class Solution {
public int solution(int n) {
int answer = 0;
int[] Fibo = new int[n+1];
Fibo[0] = 0;
Fibo[1] = 1;
//F(n)๊น์ง์ ๊ฐ ํผ๋ณด๋์น ์ ๋์
for(int i=2; i<=n; i++){
// 99999์ ๊ฐ์ด ํฐ ์๋ฅผ ๋ฃ์ ๊ฒฝ์ฐ int์ longํ์
์ ๋ฒ์๋ฅผ ๋์ด
// ๊ฐ๋ค์ ๋ฌธ์ ์กฐ๊ฑด์ ๋ง๊ฒ 1234567๋ก ๋๋ ๋๋จธ์ง๋ก ์ ์ฅ
Fibo[i] = (Fibo[i-1] + Fibo[i-2])%1234567;
}
answer = Fibo[n];
return answer;
}
}
Fibo์ ์๋ฃํ์ ๋ง๋๋ก Fibo๋ฅผ ๊ณ์ฐํ ๋ 1234567๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ ์ฅํ๋๋ก ์์ ํ๋ค.
'๐ Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ๋ชจ์ ์ ๊ฑฐ(์๋ฐ) (0) | 2023.03.30 |
---|---|
[Programmers] ํฉํ ๋ฆฌ์ผ(์๋ฐ) (0) | 2023.03.29 |
[Programmers] ๋ชจ์ค๋ถํธ(1)(์๋ฐ) (0) | 2023.03.27 |
[Programmers] ๋ฐ๋ณต๋ฌธ ์ถ๋ ฅํ๊ธฐ(์๋ฐ) (0) | 2023.03.25 |
[Programmers] ํผ์ ๋๋ ๋จน๊ธฐ(2)(์๋ฐ) (0) | 2023.03.21 |