알고리즘

[프로그래머스, 파이썬] 땅따먹기

hminor 2024. 3. 13. 11:29

풀이

  • 해당 문제는 DP를 활용한 문제로
  • 해당 유형의 DP는 자주 사용하는 방식이기에 꼭 기억하고 있으면 좋다.
  • for을 활용하여 1번째 인덱스의 land 위치에서 이전 값에서 
  • 현재 j의 인덱스 위치가 아닌 값들 중 가장 큰 값을 현재 값에 누적합하여
  • 최종적으로 마지막 land의 배열 중 가장 큰 값을 전달하여 해결하는 방법

 

def solution(land):
    for i in range(1,len(land)):
        for j in range(4): land[i][j] += max(land[i-1][:j]+land[i-1][j+1:])
    return max(land[-1])