프로그래머스/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]) # 마지막행(누적된 합)의 최대값