다이나믹 프로그래밍

11066번 – 파일합치기

1

문제 풀이 코드 재귀로 풀기 from sys import stdin costs = [] minSums = [] arr = [] big = 10**8+1 def 최소합찾기(s, e): global arr, minSums if minSums[s][e] > 0: return minSums[s][e] if s == e: return 0 minSum = big for i in range(s, e): ls, le, rs, re = s, i, i+1, e minSums[ls][le], minSums[rs][re] = 최소합찾기(ls, le), 최소합찾기(rs, re) 후보 = minSums[ls][le]+minSums[rs][re]+(costs[re]) if ls > 0: 후보 -= costs[ls-1]...