Algorithm/프로그래머스
[Python] 프로그래머스 Lv2 - 땅따먹기
떵호
2022. 6. 18. 16:56
728x90
🔗 문제링크
코딩테스트 연습 - 땅따먹기
땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟
programmers.co.kr
📂 분류
DP
💡 풀이
처음에는 단순하게 행의 최댓값과 열이 겹친다면 두 번째로 큰 수를 구하는 방식으로 접근했다. 하지만 이 접근방식은 잘못된 방식이었고 이 문제는 DP로 접근해야 해결할 수 있는 문제였다.
접근방식
- 현재 값에 같은 열은 밟을 수 없으므로 현재 열을 제외한 이전 행의 최댓값을 더해준다.
💻 코드
def solution(land):
for i in range(1, len(land)):
for j in range(len(land[i])):
land[i][j] += max(land[i - 1][:j] + land[i - 1][j + 1:])
return max(land[-1])
728x90