손글씨로 설명을 대체합니다
논리
점화식
동작 순서 예시
코드
import sys
def minimum_matrix_operation():
# inputs
N = int(sys.stdin.readline())
matrices = [None] * N
for i in range(N):
matrices[i] = list(map(int, sys.stdin.readline().split()))
# table[i][j]: i-th-Matrix * ... * j-th-Matrix 의 최소 연산 횟수
table = [[0] * N for _ in range(N)]
for j in range(1, N):
for i in range(j-1, -1, -1):
candidate = sys.maxsize
for k in range(i, j):
candidate = min(candidate
, matrices[i][0] * matrices[k][1] * matrices[j][1]
+ table[i][k] + table[k+1][j])
table[i][j] = candidate
print(table[0][N-1])
return
minimum_matrix_operation()
'dev > 알고리즘문제풀이' 카테고리의 다른 글
[ 백준 2098번 ] 외판원 순회 파이썬 (0) | 2021.09.01 |
---|---|
[ 백준 12865번 ] 아주 평범한 배낭 파이썬 (0) | 2021.09.01 |
[ 백준 9251번 ] LCS 파이썬 (0) | 2021.09.01 |
[ 백준 11053번 ] 가장 긴 증가하는 부분 수열(LIS) 파이썬 (0) | 2021.09.01 |
[ 백준 2573번 ] 빙산 파이썬 (0) | 2021.08.25 |