chyam

[프로그래머스 Lv2,python]- 땅따먹기 본문

프로그래머스/LV2

[프로그래머스 Lv2,python]- 땅따먹기

chyam_eun 2025. 1. 31. 11:42

https://school.programmers.co.kr/learn/courses/30/lessons/12913

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

def solution(land):
    sum_list=[[0]*4 for _ in range(len(land))] # 앞의 합을 저장할 공간
    sum_list[0]=land[0] # 첫행은 그대로
    for i in range(1,len(land)):
        for j in range(4):
            li=[0]*4 # 이전 행의 다른열들을 더한것중 최대의 값을 저장
            ma=0 # 최대값
            for k in range(4):
                if j!=k : # 같은열이 아닐때
                    p=sum_list[i-1][k]+land[i][j] # 이전행의 다른열과 더한값
                    if p>ma: # 최대값보다 크면 
                        li[j]=p # 값을 저장하고 최대값으로 지정
                        ma=p
            sum_list[i][j]=max(li) # 이 행의 최대값을 sum_list에 저장
    return max(sum_list[-1]) # 마지막행(누적된 합)의 최대값