코딩테스트 대비/Softeer

[Softeer/Python] 조립라인 ★★★☆☆ - 효과는 굉장했다!

bluetag_boy 2021. 11. 23. 02:03
반응형
 

Softeer

제한시간 : C/C++(1초), Java/Python/JS(2초) | 메모리 제한 : 256MB 동일한 자동차를 생산하는 2개의 조립 라인 A와 B가 있다. 두 조립라인에는 각각 N개의 작업장이 있다. 각각의 작업장을 Ai (1 ≤ i ≤ N)와

softeer.ai

 

SOLUTION

import sys

N = int(sys.stdin.readline())
assembly_line = [list(map(int, sys.stdin.readline().split())) for _ in range(N)] 

# Dynamic Programiing 활용
dp = [[0,0]] * N
dp[0] = [assembly_line[0][0], assembly_line[0][1]]

for i in range(1, N):
    dp[i] = [min(dp[i-1][0], dp[i-1][1] + assembly_line[i-1][3]) + assembly_line[i][0], # A 조립라인
             min(dp[i-1][1], dp[i-1][0] + assembly_line[i-1][2]) + assembly_line[i][1]] # B 조립라인

print(min(dp[N-1])) # A, B 조립라인 중 더 최소시간을 출력