728x90

나의 풀이
def solution(m, n, puddles):
N = 1000000007
field = [[-1] * m for _ in range(n)]
for x, y in puddles:
field[y - 1][x - 1] = 0
field[0][0] = 1
for x in range(m):
for y in range(n):
if field[y][x] == -1:
if y == 0:
field[y][x] = field[y][x - 1]
elif x == 0:
field[y][x] = field[y - 1][x]
else:
field[y][x] = (field[y - 1][x] + field[y][x - 1]) % N
return field[n-1][m-1] % N
dictionary와 재귀함수를 사용한 풀이
def solution(m, n, puddles):
answer = 0
info = dict([((2, 1), 1), ((1, 2), 1)])
for puddle in puddles:
info[tuple(puddle)] = 0
def func(m, n):
if m < 1 or n < 1:
return 0
if (m, n) in info:
return info[(m, n)]
return info.setdefault((m, n), func(m - 1, n) + func(m, n - 1))
return func(m, n) % 1000000007
반응형
'Coding Test > Programmers' 카테고리의 다른 글
| [프로그래머스/파이썬] 타겟 넘버 (0) | 2022.06.07 |
|---|---|
| [프로그래머스/파이썬] 도둑질 (0) | 2022.06.07 |
| [프로그래머스/파이썬] 정수 삼각형 (0) | 2022.06.07 |
| [프로그래머스/파이썬] N으로 표현 (0) | 2022.06.07 |
| [프로그래머스/파이썬] 단속카메라 (0) | 2022.06.07 |