Algorithm

๋ฐฑ์ค€ 10870 ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด with JAVA

hyunjun's developing ๐Ÿฃ 2023. 12. 29. 14:24

์ผ๋‹จ n์„ ์ž…๋ ฅ ๋ฐ›์•„์•ผ ํ•ด. -> ์Šค์บ๋„ˆ๋ฅผ ํ†ตํ•ด์„œ -> ๋ฐ˜๋ณต๋ฌธ ์‹ค์‹œ (for int i = 0, i <=n, i++){

f(n) = f(n -1) + f(n - 2)

}

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
 
        Scanner in = new Scanner(System.in);
 
        int n = in.nextInt();
 
        System.out.println(f(n));
 
    }
 
    // ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜
    static int f(int n) {
        if (n == 0)    return 0;
        if (n == 1)    return 1;
        return f(n - 1+ f(n - 2);
    }
}
cs

๋‚˜๋Š” ๋ฉ”์ธํ•จ์ˆ˜์™€ ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜๋ฅผ ๋จผ์ € ๋ถ„๋ฆฌ๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค. ๋ฉ”์ธํ•จ์ˆ˜ ๋ถ€๋ถ„์—์„œ๋Š” ์Šค์บ๋„ˆ๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ทธ๋ฅผ ํ†ตํ•ด ์ž…๋ ฅ ๋ฐ›์œผ๋ฉฐ f(n)ํ•จ์ˆ˜(ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜)๋ฅผ ํ˜ธ์ถœํ•ด ์ฝ˜์†”์— ๋„์šฐ๋„๋ก ํ•˜์˜€๋‹ค. ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜๋Š” 0๋ฒˆ์งธ ํ•ญ๊ณผ 1๋ฒˆ์งธ ํ•ญ์„ ์ œ์™ธํ•˜๊ณ  2๋ฒˆ์งธ ํ•ญ๋ถ€ํ„ฐ๋Š” ์•ž์— ์žˆ๋Š” ์ˆ˜๋ฅผ ๊ณ„์† ๋”ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฝ”๋“œ๋ฅผ ์งœ์ฃผ์—ˆ๋‹ค. ์žฌ๊ท€ํ•จ์ˆ˜์˜ ๊ฐœ๋…์ด๋‹ค for๋ฌธ์„ ์ด์šฉํ•ด์„œ ํ’€์–ด๋„ ๋œ๋‹ค. 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
 
        int n = in.nextInt();
 
        System.out.println(f(n));
    }
 
    // ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜
    static int f(int n) {
        if (n == 0return 0;
        if (n == 1return 1;
 
        int[] fibo = new int[n + 1];
        fibo[0= 0;
        fibo[1= 1;
 
        // for๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ๊ณ„์‚ฐ
        for (int i = 2; i <= n; i++) {
            fibo[i] = fibo[i - 1+ fibo[i - 2];
        }
 
        return fibo[n];
    }
}
 
cs

 

๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ํ•˜๋‚˜ ๋” ์˜ฌ๋ ค์ฃผ๋Š”๋ฐ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.