프로그래머스 - 땅따먹기

Dean_Kang·2021년 7월 2일
0

프로그래머스

목록 보기
8/21

문제

이 문제는 열의 크기는 4로 고정된 주어진 2차원 배열에서 각 행에 최대값인 땅을 밟는데 이전에 밟았던 열은 연속적으로 밟을 수 없다는 제약조건이 있을 때 밟은 땅들의 값을 모두 더했을 때 그 값이 최대가 되도록 했을 때 그 값을 출력하도록 하는 문제이다.

DP(다이나믹 프로그래밍) 문제로 나는 각 열에 이전 행에서 자신과 겹치는 열을 제외한 값들 중 최대값을 누적으로 합해가는 방식으로 문제를 풀었다.

코드

def solution(land):
    for i in range(1,len(land)):
        land[i][0] += max(land[i-1][1], land[i-1][2], land[i-1][3])
        land[i][1] += max(land[i-1][0], land[i-1][2], land[i-1][3])
        land[i][2] += max(land[i-1][1], land[i-1][0], land[i-1][3])
        land[i][3] += max(land[i-1][1], land[i-1][2], land[i-1][0])

    return max(land[len(land)-1])
profile
for the goal

0개의 댓글

관련 채용 정보