-
11066번: 파일 합치기
소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본
www.acmicpc.net
코드
def merge(k, li): memo = list([0] * k for _ in range(k)) for i in range(k - 1): memo[i][i + 1] = li[i] + li[i + 1] for j in range(i + 2, k): memo[i][j] = memo[i][j - 1] + li[j] for l in range(2, k): for i in range(k - l): j = i + l minimum = list(memo[i][m] + memo[m + 1][j] for m in range(i, j)) memo[i][j] += min(minimum) return memo[0][k - 1] if __name__ == '__main__': t = int(input()) for _ in range(t): k = int(input()) li = list(map(int, input().split())) answer = merge(k, li) print(answer)
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1520번 내리막 길 (파이썬) (0) 2022.01.04 [백준] 11049번 행렬 곱셈 순서 (파이썬) (0) 2022.01.04 [백준] 1655번 가운데를 말해요 (파이썬) (0) 2022.01.04 [백준] 11286번 절댓값 힙 (파이썬) (0) 2022.01.04 [백준] 1927번 최소 힙 (파이썬) (0) 2022.01.04