728x90
programmers.co.kr/learn/courses/30/lessons/12913
접근
백준의 RGB거리와 같은 유형의 문제였다.
그 이유는 0행부터 내려오면서 땅을 밟고 연속해서 같은 행의 땅은 밟을 수 없다고 했을 때 가장 아래의 행에 내려왔을 때 최대값을 구하는 것이기 때문이다.
따라서 1행부터 이전의 행에서 밟을 수 있는 땅 중 최대를 찾아 더해가면서 밑으로 내려가도록 한다.
구현
def solution(land):
answer = 0
for y in range(1, len(land)):
land[y][0] += max(land[y-1][1], max(land[y-1][2], land[y-1][3]))
land[y][1] += max(land[y-1][0], max(land[y-1][2], land[y-1][3]))
land[y][2] += max(land[y-1][0], max(land[y-1][1], land[y-1][3]))
land[y][3] += max(land[y-1][0], max(land[y-1][1], land[y-1][2]))
N = len(land)-1
answer = max(land[N][0], max(land[N][1], max(land[N][2], land[N][3])))
return answer
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[Level 2] 카펫 (0) | 2021.02.23 |
---|---|
[Level 2] 네트워크 (0) | 2021.02.22 |
[Level 2] 올바른 괄호 (0) | 2021.02.21 |
[Level 2] 더 맵게 (0) | 2021.02.21 |
[Level 2] 가장 큰 수 (0) | 2021.02.20 |