6주차 : 다이나믹 프로그래밍 문제 2
✔ BOJ_11726
해당 문제는 그림을 그려보면 피보나치 수열과 매우 비슷하다는 것을 파악할 수 있는 문제이다. 따라서 피보나치 수열을 다이나믹 프로그래밍으로 푸는 것과 같이 문제를 풀었다. 식은 아래와 같다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BOJ_11726{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int d[] = new int[n+1];
for(int i=1;i<=n;i++){
if(i==1) d[i] =1;
else if(i==2) d[i] = 2;
// 숫자가 매우 커질 수 이쓰므로 10000보다 큰 최ㅗ의 소수인
// 10007로 나눠준다.
else d[i] = (d[i-2] + d[i-1) % 10007;
}
System.out.println(d[n]);
}}
Author And Source
이 문제에 관하여(6주차 : 다이나믹 프로그래밍 문제 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@alswn9938/6주차-다이나믹-프로그래밍-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)