[COS PRO 1급 #6-5]

문제

게임 A는 4×4 그리드 보드에서 조각을 왼쪽 상단에서 오른쪽 하단으로 이동하면서 각 영역에서 코인을 획득하는 게임입니다.

이 시점에서 캐릭터는 오른쪽 또는 아래로만 이동할 수 있습니다.

예를 들어 보드가 다음과 같은 경우:

다음의 경우는 코인 최대 구매 가능 개수이며 구매 가능한 코인 개수가 38개인 경우입니다.

각 지역에서 얻을 수 있는 코인의 양을 포함하는 2차원 리스트 테이블을 매개변수로 주어지면, 얻을 수 있는 최대 코인의 양을 반환하도록 solve 함수를 작성합니다.

그러나 코드의 일부가 잘못되어 일부 입력에 대해 제대로 작동하지 않습니다.

_**한 줄**_만 변경하여 모든 입력에 대해 올바르게 작동하도록 주어진 코드를 수정합니다.

매개변수 설명

각 구역에서 얻을 수 있는 코인의 양을 담은 2차원 리스트 테이블이 solve 함수의 매개변수로 주어진다.

* 보드는 4×4 크기의 2차원 목록입니다.


* 각 지역에서 사용 가능한 동전의 수는 1에서 9 사이의 자연수입니다.

반환 값에 대한 설명

구매할 수 있는 최대 코인 수를 반환합니다.

| 보드 | 반환 |
|———————————– ———— — ——-|——–|
| ((6, 7, 1, 2), (3, 5, 3, 9), (6, 4, 5, 2), (7, 3, 2, 6)) | 38 |

예시 설명

문제의 예와 동일합니다.

문제 코드

def solution(board):
    coins = ((0 for c in range(4)) for r in range(4))
    for i in range(4):
        for j in range(4):
            if i == 0 and j == 0:
                coins(i)(j) = board(i)(j)
            elif i == 0 and j !
= 0: coins(i)(j) = board(i)(j) + coins(i)(j-1) elif i !
= 0 and j == 0: coins(i)(j) = board(i)(j) + coins(i-1)(j) else: coins(i)(j) = board(i)(j) + max(coins(i)(j), coins(i-1)(j-1)) answer = coins(3)(3) return answer

설명

def solution(board):
    coins = ((0 for c in range(4)) for r in range(4))
    for i in range(4):
        for j in range(4):
        
        	# (0,0) 좌표에서는 (0,0)의 코인 획득
            if i == 0 and j == 0:
                coins(i)(j) = board(i)(j)
            # 첫째행의 좌표에서는 왼쪽 코인과 해당 좌표의 코인 획득
            elif i == 0 and j !
= 0: coins(i)(j) = board(i)(j) + coins(i)(j-1) # 첫째열의 좌표에서는 위쪽 코인과 해당 좌표의 코인 획득 elif i !
= 0 and j == 0: coins(i)(j) = board(i)(j) + coins(i-1)(j) # 기타 좌표에서는 왼쪽 코인과 위쪽 코인 중 큰 코인과 해당 좌표의 코인 획득 else: coins(i)(j) = board(i)(j) + max(coins(i)(j-1), coins(i-1)(j)) answer = coins(3)(3) return answer