JAVA_LeetCode 343_Integer Break 풀이 class Solution { public int integerBreak(int n) { // dp[i]는 정수 i를 쪼갰을 때 최대 곱을 저장하는 배열 int[] dp = new int[n + 1]; dp[1] = 1; // 초기 값 설정 // 2부터 n까지 모든 수에 대해 최대 곱을 계산 for(int i = 2; i <= n; i++){ // i를 j와 i - j로 나눔, j는 1부터 i - 1까지 변화 for(int j = 1; j < i; j++){ // 최대값을 dp[i]에 저장 // 1) i - j를 더 쪼갤 경우: dp[i - j] * j // 2) i - j를 더 쪼개지 않을 경우: (i - j) * j dp[i] = Math.max(dp[i], Math.max(dp[i - j] * j, (i - j) * j)); } } return dp[n]; // n을 쪼갰을 때의 최대 곱 출력 } } dp 풀이, 2...
원문 링크 : JAVA_LeetCode 343_Integer Break