728x90
반응형
예제 리스트 중에 가장 주의해야하는 5번째 리스트만 첨부하겠다
예제 입력 5
8
71 39 44
32 83 55
51 37 63
89 29 100
83 58 11
65 13 15
47 25 29
60 66 19
예제 출력 5
253
풀이과정
처음에는 각 집마다 작은수의 색상을 겹치지 않게 선택하면 된다고 생각했는데, 최솟값을 구하려면 그것만으로 충분하지 않아서 다른 코드들을 참고하고 이해하게되었다. 참고자료 첨부.
1. N-1, N+1번의 집과 색이 같지 않아야하는데, 이로 인해 인덱스 0이 아닌 1부터 시작하여 -1 인덱스와 비교해야한다.
2. 해당 RGB가 각각 0, 1, 2에 담겨있을 때, [i][0]의 색상을 선택했다면 [i-1][1]과 [i-1][2]중에 최소값이 무엇인지 찾아준다.
import sys; intput = sys.stdin.readline
N = int(input())
nums = list(list(map(int, input().split())) for _ in range(N))
for i in range(1, N):
nums[i][0] = min(nums[i-1][1], nums[i-1][2]) + nums[i][0]
nums[i][1] = min(nums[i-1][0], nums[i-1][2]) + nums[i][1]
nums[i][2] = min(nums[i-1][0], nums[i-1][1]) + nums[i][2]
print(min(nums[N-1]))
728x90
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[Baekjoon] 1068 Python (0) | 2023.08.29 |
---|---|
[Baekjoon] 1302 Python (0) | 2023.08.29 |
[Baekjoon] 2606 Python (0) | 2023.08.28 |
[Baekjoon] 9375 Python (0) | 2023.08.28 |
[Baekjoon] 11047 Python (0) | 2023.08.28 |