백준 1149번

게으른 개미개발자·2023년 1월 10일
0

algorithm

목록 보기
1/7

오랜만에 백준을 풀어보았다...

완탐은 아닌거같아서 dp인거 같아서 풀어보려고했는데, dp 개념이 흔들렸다.
박사님께서 한 번 명료하게 설명해주셔서 풀 수 있었다.

파이썬 반복문은 느리다. 앞으로, 반복문을 최대한 줄이자.
3개밖에 안되니, 풀어서 해도 상관없었다.

많이 부족하니, 시간날때마다 한 번씩 풀어보자.

다음부터는 입력은 되도록 sys.stdin.readline()으로 받자

import math
import sys

n = int(input(''))

arr = [list(map(int,(input('').split(' ')))) for _ in range(n)]

sum_arr = [list(math.inf for _ in range(3)) for _ in range(n)]

sum_arr[0] = arr[0]
min_idx = arr[0].index(min(arr[0]))

for i in range(1,n):
    for j in range(3):
        temp = math.inf
        for k in range(3):
            if j != k:
                sum_arr[i][j] = min(sum_arr[i-1][k]+arr[i][j],temp)
            if sum_arr[i][j] < temp:
                temp = sum_arr[i][j]
                
res = min(sum_arr[-1])
print(res,end='')
profile
특 : 미친듯한 게으름과 부지런한 생각이 공존하는 사람

0개의 댓글