๋ฐ์ํ
https://www.acmicpc.net/problem/17175
๋ฌธ์
ํ์ง์ด๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ๋ง๋ค๋ผ๋ ๋ ์ด์ ๋ฐ์ ์คํธ๋ ์ค๋ค. ํ์ง๋ง ํผ๋ณด๋์น ๋ฌธ์ ๋ ๋๋ฌด ๋ง์ด ๋ด์ ์ง๊ฒน๊ธฐ ๊ทธ์ง์๋ค. ๊ทธ๋ฌ๋ ๋ฌธ์ ๋ฅผ ๋ง๋ค ์๊ฐ์ด ์๋ ํ์ง์ด๋ ํผ๋ณด๋์น ๋ฌธ์ ๋ฅผ ์์ฉํด์ ๋ฌธ์ ๋ฅผ ๋ง๋ค๋ ค ํ๋ค.
int fibonacci(int n) { // ํธ์ถ
if (n < 2) {
return n;
}
return fibonacci(n-2) + fibonacci(n-1);
}
์์ ๊ฐ์ด ์ฝ๋ฉํ์์ ๋ fibonacci(n)๋ฅผ ์ ๋ ฅํ์ ๋์ fibonacci ํจ์๊ฐ ํธ์ถ๋๋ ํ์๋ฅผ ๊ณ์ฐํด๋ณด์.
์ ๋ ฅ
fibonacci ํจ์์ ์ธ์๋ก ์ ๋ ฅํ n์ด ์ฃผ์ด์ง๋ค. (0 ≤ n ≤ 50)
์ถ๋ ฅ
fibonacci ํจ์๊ฐ ํธ์ถ๋ ํ์๋ฅผ ์ถ๋ ฅํ๋ค.
์ถ๋ ฅ๊ฐ์ด ๋งค์ฐ ์ปค์ง ์ ์์ผ๋ฏ๋ก ์ ๋ต์ 1,000,000,007 ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค.
์ฝ๋
import java.util.Scanner;
public class Main_BOJ_17175_ํผ๋ณด๋์น๋์ง๊ฒจ์ {
static int mod = 1000000007;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] dp = new int[51];
dp[0] = 1;
dp[1] = 1;
for(int i = 2; i <= 50 ; i++){
dp[i] = (dp[i-1] + dp[i-2] + 1) % mod;
}
System.out.println(dp[n]%mod);
}
}
728x90
๋ฐ์ํ
'์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ๋ฐฑ์ค / BOJ 16951 ] ๋ธ๋ก ๋์ด ( ์๋ฐ / JAVA ) (0) | 2021.11.11 |
---|---|
[ ๋ฐฑ์ค / BOJ 2668 ] ์ซ์๊ณ ๋ฅด๊ธฐ ( ์๋ฐ / JAVA ) (0) | 2021.11.11 |
[ ๋ฐฑ์ค / BOJ 17276 ] ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ ( ์๋ฐ / JAVA ) (0) | 2021.11.11 |
[ ๋ฐฑ์ค / BOJ 2671 ] ์ ์ํจ ์๋ณ ( ์๋ฐ / JAVA ) (0) | 2021.11.10 |
[ ๋ฐฑ์ค / BOJ 10828 ] ์คํ ( ์๋ฐ / JAVA ) (0) | 2021.11.02 |