[๋ฐฑ์ค] ๐ฅ 2748 ํผ๋ณด๋์น ์ 2
๐ ๋์ด๋
๐ฅ Bronze 1
๐ ๋ฌธ์
https://www.acmicpc.net/problem/2748
๐ ํ์ด
๋ฌธ์ ์์ฒด๋ ์ ๋ง ๊ฐ๋จํ๋ค.
์ฌ๊ท๋ฅผ ์ฌ์ฉํด์ ํ์ด๋ ๋๋ ๋ฌธ์ ์ด์ง๋ง, ์ด ๋ฌธ์ ๋ ํผ๋ณด๋์น2๋ผ ์๊ฐ์ ํ์ด 1์ด๋ฐ์ ์๋์ ์ฌ๊ท๊ฐ์ ์๊ฐ๋ณต์ก๋๊ฐ ๋์ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ํ๋ฉด ์ ํ์๊ฐ์ ๊ฑธ๋ฆฌ๊ฒ๋๋ค.
๋ฐ๋ผ์ DP
์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ์ฌ์ผ ์ ํ์๊ฐ๋ด์ ํ ์ ์๊ฒ๋๋ค.
๋๋ ๋ค์๊ณผ ๊ฐ์ด Bottom-Up
๋ฐฉ์์ ์ฌ์ฉํ์๋ค.
๐ Code
package DP;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class N2748 {
public static long[] fibo;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int count = Integer.parseInt(st.nextToken());
fibo = new long[count+1];
Arrays.fill(fibo, -1);
fibo[0] = 0;
if(count != 0) {
fibo[1] = 1;
for (int i = 2; i < count + 1; i++) {
MakeFibo(i);
}
}
System.out.println(fibo[count]);
}
public static void MakeFibo(int i){
if(fibo[i]==-1) {
fibo[i] = fibo[i - 1] + fibo[i - 2];
}
}
}
package (์ด๋ฆ); ๋ฅผ ๋๊ณ , class ์ด๋ฆ์ Main
์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ๋๋ค.
๊ฐ์ธ ๊ณต๋ถ ๊ธฐ๋ก์ฉ ๋ธ๋ก๊ทธ์
๋๋ค.
ํ๋ฆฌ๊ฑฐ๋ ์ค๋ฅ๊ฐ ์์ ๊ฒฝ์ฐ ์ ๋ณดํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.๐