์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€

[ ๋ฐฑ์ค€ / BOJ 17175 ] ํ”ผ๋ณด๋‚˜์น˜๋Š” ์ง€๊ฒจ์›ก~ ( ์ž๋ฐ” / JAVA )

KIMHYEYUN 2021. 11. 11. 20:29
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/17175

 

17175๋ฒˆ: ํ”ผ๋ณด๋‚˜์น˜๋Š” ์ง€๊ฒจ์›ก~

ํ˜์ง„์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๋ผ๋Š” ๋…์ด‰์„ ๋ฐ›์•„ ์ŠคํŠธ๋ ˆ์Šค๋‹ค. ํ•˜์ง€๋งŒ ํ”ผ๋ณด๋‚˜์น˜ ๋ฌธ์ œ๋Š” ๋„ˆ๋ฌด ๋งŽ์ด ๋ด์„œ ์ง€๊ฒน๊ธฐ ๊ทธ์ง€์—†๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค ์‹œ๊ฐ„์ด ์—†๋Š” ํ˜์ง„์ด๋Š” ํ”ผ๋ณด๋‚˜์น˜ ๋ฌธ์ œ๋ฅผ ์‘์šฉํ•ด์„œ

www.acmicpc.net

 

๋ฌธ์ œ


ํ˜์ง„์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๋ผ๋Š” ๋…์ด‰์„ ๋ฐ›์•„ ์ŠคํŠธ๋ ˆ์Šค๋‹ค. ํ•˜์ง€๋งŒ ํ”ผ๋ณด๋‚˜์น˜ ๋ฌธ์ œ๋Š” ๋„ˆ๋ฌด ๋งŽ์ด ๋ด์„œ ์ง€๊ฒน๊ธฐ ๊ทธ์ง€์—†๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค ์‹œ๊ฐ„์ด ์—†๋Š” ํ˜์ง„์ด๋Š” ํ”ผ๋ณด๋‚˜์น˜ ๋ฌธ์ œ๋ฅผ ์‘์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๋ ค ํ•œ๋‹ค.

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
๋ฐ˜์‘ํ˜•