프로그래머스/lv.2
땅따먹기
bingual
2024. 2. 18. 19:29
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12913
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이
지문 설명과 테스트 케이스 예시가 좀 부족한 문제이다. 해당문제는 최고점을 구해야 하는 문제이며 이전 행의 결과가 다음 행의 결과로 이어지기에 점화식을 이용 DP를 사용할 수 있다.
- 같은 열을 제외한 이전 행의 최대 값을 구한다.
- 최대 값을 현재 행렬에 더한다.
- 마지막 인덱스에서 최대 값을 구하게 된다면 그게 최고점이 된다.
def solution(land):
n, m = len(land), len(land[0])
for i in range(1, n):
for j in range(m):
land[i][j] += max(land[i - 1][:j] + land[i - 1][j + 1 :])
return max(land[-1])