Dynamic Programming2 백준 2133 ▶ 2133문제 - 타일 채우기 ▶ 풀이방법 import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int num = Integer.parseInt(br.readLine()); int[] dp = new int[num+1]; dp[0] = 1; if(num > 1) dp[2] = 3; // 1이하일때 런타임 에러 발생하므로 1.. 2022. 3. 29. 알고리즘 - Dynamic Programming(동적 계획법) ▶ 다이나믹 프로그래밍 - 복잡한 큰 문제를 간단한 여러 작은 문제로 나눠서 푸는 알고리즘 ▶ 다이나믹 프로그래밍 방법. - 모든 작은 문제들은 한번만 풀어야 함. - 작은 문제들에 대한 정답을 어딘가에 메모해 놓아야 함 -> Memoization - 같은 문제가 나타나면 메모해 두었던 작은 문제의 결과값을 이용함. - 피보나치 수열 사용 ▶ 다이나믹 프로그래밍 조건 1. 작은 문제가 반복이 일어나는 경우. 2. 최적 부분 구조. 작은 문제의 결과 구할 때 과정에 사용된 정답 항상 같음. ▶ 다이나믹 프로그래밍 구현 방법 1. Top-Down : 재귀함수 이용한 방법(문제를 여러 문제로 나눠 놓고 필요할 때 구함) 2. Botto.. 2022. 3. 19. 이전 1 다음