[프로그래머스 땅따먹기] 파이썬 풀이 🦄
문제
행을 위에서 아래로 지나면서 최대값을 구하는 DP문제
Keypoints
- DP[4] 리스트에 보관해야 하는 값은, 해당 땅을 밟았을 때의 최대값이다.
- 따라서 현재땅에서 이전 땅들(같은 열 제외)의 최대값을 더해주면 된다.
Solution
def solution(land):
dp = land[0]
for i in range(1, len(land)) :
temp = sorted([(j,i) for i,j in enumerate(dp)], key=lambda x:-x[0])
for j in range(4):
for k in range(4):
if temp[k][1] !=j:
dp[j] = land[i][j] + temp[k][0]
break
return max(dp)
References
'프로그래밍' 카테고리의 다른 글
[백준 1922 네트워크 연결] - 파이썬 풀이 🦄 (0) | 2021.02.17 |
---|---|
백준 10026 적록색약] 파이썬 풀이 🦄 (0) | 2021.02.17 |
Tensorboard not found error (0) | 2021.02.16 |
[프로그래머스 H-index] 파이썬 풀이 (0) | 2021.02.16 |
[프로그래머스 스킬트리] 파이썬 풀이 (0) | 2021.02.14 |