https://programmers.co.kr/learn/courses/30/lessons/12913
1 2 3 5
5 6 7 8
4 3 2 1
이 있을 때 자기 자신과 같은 열은 더하지 못하므로
자기 자신의 열을 뺀 나머지 중 최대값을 밑으로 계속 더해줬다.
마지막 줄의 max값을 출력하도록 하였다.
def solution(land):
for i in range(1,len(land)):
for j in range(len(land[0])):
land[i][j] += max(land[i-1][:j] + land[i-1][j+1:])
return max(land[len(land)-1])
두 번째 줄 부터 시작하는 반복문이다 밑의
land[i][j] += max(land[i-1][:j] + land[i-1][j+1:]
코드는 land[i][j] + 그 위에 줄의 j열 빼고 만든 리스트에서 max값을 뽑아서 더해주라는 뜻이다. land[i-1][:j]를 하면 j열 앞까지 리스트가 뽑히고 land[i-1][j+1:]을 하면 j+1열부터 끝까지 리스트가 뽑혀서 리스트 끼리 더하면 합쳐진 리스트가 된다. 그 리스트에서 max 값을 더해주라는 뜻이다!!
이제 마지막 줄의 max 값을 return하면 답이 된다.
좋은 풀이 잘 봤습니다. 감사합니다