728x90
반응형
이건...
N개의 행, 4개의 열이 있다.
첫번째 행에서 만약 2번 열을 골랐다면, 다음행에서는 2번열을 고르지 못한다.
이런 조건에서 N행까지 도착했을때 수의 합이 최대가 되게 하는 문제이다.
처음에는 dfs로 접근을 했지만... 코드가 굉장히 복잡하고 연산 문제 때문에
DP로 접근했다.
선택한 열을 제외한 모든 요소를 더해서 가장 큰값을 골라 초기회 해주고 누적하는 식으로 진행했다.
def solution(land):
answer = 0
n = len(land)
dp = land
for i in range(1, n):
for j in range(4):
dp[i][j] += max(dp[i-1][:j] + dp[i-1][j+1:])
answer = max(dp[-1])
return answer
728x90
반응형
'알고리즘 > python' 카테고리의 다른 글
[프로그래머스] lv2 다리를 지나는 트럭_python (0) | 2024.04.03 |
---|---|
[프로그래머스] lv3 네트워트_python (1) | 2024.03.29 |
[프로그래머스] lv2 하노이의 탑_python (0) | 2024.03.27 |
[softeer] lv3 순서대로 방문하기_python (2) | 2024.03.25 |
[softeer] lv3 성적평가_python (0) | 2024.03.25 |