코드
def solution(land):
for i in range(1,len(land)):
for j in range(4):
land[i][j] += max(land[i-1][k] for k in range(4) if k != j)
return(max(land[-1]))
풀이
- dfs로 풀려고 했으나 n의 길이가 100000개여서 누적합을 구하는 방식으로 접근했다.
- 이전 배열의 최댓값을 더할때, 자기 자신의 위치를 뺀 리스트를 만드는 방법도 있다.(슬라이싱을 이용해서 land[i-1][0:j] + land[i-1][j+1:4] 로 구하면 된다.)
'👨🏻💻알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv3. 네트워크 (0) | 2023.01.27 |
---|---|
[프로그래머스] Lv2. 할인 행사 (0) | 2023.01.26 |
[프로그래머스] Lv2. 스킬트리 (0) | 2023.01.26 |
[프로그래머스] Lv2. 주식 가격 (0) | 2023.01.25 |
[프로그래머스/SQL] Lv1. 조건에 맞는 도서 리스트 출력하기 (0) | 2023.01.25 |