강의로 돌아가기
이동훈

질문드립니다.

def solution(m,n,puddles):
    grid = [[0]*(m+1) for i in range(n+1)] #왼쪽, 위로 한줄씩 만들어서 IndexError 방지
    if puddles != [[]]:                    #물이 잠긴 지역이 0일 수 있음
        for a, b in puddles:
            grid[a][b] = -1                #미리 -1로 체크
    grid[1][1] = 1
    for j in range(1,n+1):
        for k in range(1,m+1):
            if j == k == 1:                #(1,1)은 1로 만들어두고, 0이 되지 않도록
                continue
            if grid[j][k] == -1:           #웅덩이는 0으로 만들어 다음 덧셈 때 영향끼치지 않게
                grid[j][k] = 0
                continue
            grid[j][k] = (grid[j][k-1] + grid[j-1][k])%1000000007   #[a,b] = [a-1,b] + [a,b-1] 공식

    return grid[n][m]

접근 방법에 문제가 있는걸까요, 많은 테스트케이스를 만들어서 넣었는데도 한 문제만 맞고 나머지는 틀리거나 런타임 에러를 내뱉네요. index 관련해서 오류가 나올 테스트케이스가 있나요?

  • Jihye Kang
    저도 같은 문제가 있었는데요, 문제에서 좌표는 (m,n)으로 표시한다고 하였습니다. 따라서 puddles에 들어가 있는 값은 m,n 형태입니다. 하지만 작성자님께서는 grid를 grid[n][m]으로 표현하셨습니다. for a, b in puddles: grid[b][a] = -1로 표현하면 바로 맞을 것 같습니다. Jihye Kang 2019.04.11 00:33
1 개의 답변
정성환

for a, b in puddles:
grid[b][a] = -1 로 바꾸시면 됩니다.

  • 이동훈
    헙, 이런 실수를, 2차원 배열로 넘어오면서 x축 y축에 대한 개념을 잘 잡고 시작해야겠습니다. 고맙습니다! :) 이동훈 2018.09.27 19:35
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.