๐Ÿ’ก Algorithm

[Java] ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ - Bottom-Up/Top-Down (Lv. 2)

jcowwk 2025. 2. 11. 11:34

ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ - Bottom-Up/Top-Down (Lv. 2)


1. ๋ฌธ์ œ

2. ํ’€์ด


1. ๋ฌธ์ œ

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

2. ํ’€์ด

- Bottom-Up

class Solution {
    public int solution(int n) {
        if (n == 1 || n == 2) {
            return 1;
        }
        
        int[] fib = new int[n + 1];
        fib[1] = 1;
        fib[2] = 1;
        
        for (int i = 3; i <= n; i++) {
            fib[i] = (fib[i - 1] + fib[i - 2]) % 1234567;
        }
        
        return fib[n];
    }
}

 

๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ณ  ์ž‘์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ ํฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ, ํ…Œ์ด๋ธ”์„ ์ฑ„์›Œ๊ฐ€๋ฉฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

 

- Top-Down

class Solution {
    private int[] fib = new int[100001];
    
    public int solution(int n) {
        if (n == 1 || n == 2) {
            return 1;
        }
        
        if (fib[n] != 0) {
            return fib[n];
        }
        
        fib[n] = (solution(n - 1) + solution(n - 2)) % 1234567;
        return fib[n];
    }
}

 

๋ฉ”๋ชจ์ด์ œ์ด์…˜์œผ๋กœ ์ค‘๋ณต ๊ณ„์‚ฐ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

 


๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฉด ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š” !

ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค <3