[프로그래머스] 땅따먹기 Swift

승아·2021년 6월 16일
0

프로그래머스 - 땅따먹기

나의 풀이

dp를 활용하여 풀었습니다 !
1. 이전 행에서 같은 열을 제외하고 가장 큰 값을 구한 후 더해줍니다.
2. 위 과정을 끝까지 반복 합니다.
3. 마지막 열에서 제일 큰 값을 구합니다.

import Foundation

func solution(_ land:[[Int]]) -> Int{
    var arr = land
    
    for i in 1..<land.count{
        arr[i][0] += max(arr[i-1][1], arr[i-1][2], arr[i-1][3])
        arr[i][1] += max(arr[i-1][0], arr[i-1][2], arr[i-1][3])
        arr[i][2] += max(arr[i-1][0], arr[i-1][1], arr[i-1][3])
        arr[i][3] += max(arr[i-1][0], arr[i-1][1], arr[i-1][2])
    }
  
    return max(arr[arr.count - 1][0], arr[arr.count - 1][1], arr[arr.count - 1][2], arr[arr.count - 1][3])
}

0개의 댓글