내 코드
def solution(land):
p = [[l for l in ld] for ld in land]
for i in range(1,len(land)):
for j in range(4):
p[i][j] = max([p[i-1][k] for k in range(4) if k!=j]) + land[i][j]
return max(p[-1])
이때까지 밟은 땅의 최대값을 구해서 풀었다. 지금 밟고있는 땅의 행의 -1된 땅들중에서 지금 밟고있는 땅의 열과 다른 땅들의 max를 구해 지금 밟고있는 땅의 수와 합친다.
다른사람 코드
def solution(land):
for i in range(1, len(land)):
for j in range(len(land[0])):
land[i][j] = max(land[i -1][: j] + land[i - 1][j + 1:]) + land[i][j]
return max(land[-1])
리스트 p를 따로 두지않고 풀었다. 비슷한데 중간에 같은 열을 빼는 방식이 좀 다르게 풀이되어있다! 이게 더 빠를거같다 ㅎㅎ
'코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스] 방문 길이 (0) | 2021.09.10 |
---|---|
[프로그래머스] 피보나치 수 (0) | 2021.09.10 |
[프로그래머스] 점프와 순간이동 (0) | 2021.09.10 |
[프로그래머스] [3차] 방금그곡 (0) | 2021.09.09 |
[프로그래머스] [3차] 압축 (0) | 2021.09.09 |