문제 접근
DP 알고리즘 : 이미 계산된 결과를 별도의 메모리 영역에 저장하여 다시 계산하지 않음으로서 수행 시간 단축
Top-Down(하향식)
하위 문제를 재귀적으로 호출하여 해결함으로서 상위 문제를 해결
>> 해결해놓은 하위 문제를 저장하기 위해 Memoization 사용
Bottom-UP(상향식)
하위에서부터 문제를 먼저 해결하고 얻어진 값들을 이요해서 상위 문제를 해결
>> 반복문을 사용해 구현하고 문제의 결과 값을 저장하는 리스트는 DP 테이블이라 부름
풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class S1463 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] dp = new int[N + 1];
dp[1] = 0;
for (int i = 2; i <= N; i++) {
dp[i] = dp[i - 1] + 1;
if (i % 2 == 0) {
dp[i] = Math.min(dp[i], dp[i / 2] + 1);
}
if (i % 3 == 0) {
dp[i] = Math.min(dp[i], dp[i / 3] + 1);
}
}
System.out.println(dp[N]);
}
}
Bottom Up 풀이
'Algorithm' 카테고리의 다른 글
DP / 백준 11727 2xn 타일링 2 (0) | 2025.05.17 |
---|---|
DP / 백준 11726 2xn 타일링 (0) | 2025.05.16 |
수학 / 백준 17103 골드바흐 파티션 (0) | 2025.05.15 |
수학 / 백준 2089 -2진수 (0) | 2025.05.10 |
수학 / 백준 8진수 2진수 1212 (0) | 2025.05.10 |