diff --git a/code_study/Baekjoon/python/17404.py b/code_study/Baekjoon/python/17404.py index 2ae0d30..3ae2e98 100644 --- a/code_study/Baekjoon/python/17404.py +++ b/code_study/Baekjoon/python/17404.py @@ -17,21 +17,23 @@ for _ in range(N) : result = [] for i in range(3) : - dpR = [maxCost if i != 0 else R[0]] - dpG = [maxCost if i != 1 else G[0]] - dpB = [maxCost if i != 2 else B[0]] + prevR = maxCost if i != 0 else R[0] + prevG = maxCost if i != 1 else G[0] + prevB = maxCost if i != 2 else B[0] for n in range(1, N) : r, g, b = R[n], G[n], B[n] - dpR.append(r + min(dpG[n-1], dpB[n-1])) - dpG.append(g + min(dpR[n-1], dpB[n-1])) - dpB.append(b + min(dpR[n-1], dpG[n-1])) + curR = r + min(prevG, prevB) + curG = g + min(prevR, prevB) + curB = b + min(prevR, prevG) + + prevR, prevG, prevB = curR, curG, curB if i==0 : - result.append(min(dpG[N-1], dpB[N-1])) + result.append(min(prevG, prevB)) elif i==1 : - result.append(min(dpR[N-1], dpB[N-1])) + result.append(min(prevR, prevB)) else : - result.append(min(dpR[N-1], dpG[N-1])) + result.append(min(prevR, prevG)) print(min(result)) \ No newline at end of file