programmers.co.kr/learn/courses/30/lessons/42898
코딩테스트 연습 - 등굣길
계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m =
programmers.co.kr
def solution(m, n, puddles):
graph = [[0]*(m+1) for _ in range(n+1)]
graph[1][1] = 1
for i in range(1, n+1):
for j in range(1, m+1):
if i == 1 and j == 1:
continue
if [j, i] in puddles:
graph[i][j] = 0
else:
graph[i][j] = graph[i-1][j] + graph[i][j-1]
return graph[n][m] % 1000000007
- m = 4; n = 3; puddles = [[2, 2]]
0 | 0 | 0 | 0 | 0 |
0 | 집(1) | 1 | 1 | 1 |
0 | 1 | 물(0) | 1 | 2 |
0 | 1 | 1 | 2 | 학교(4) |
오른쪽과 아래쪽으로만 움직일 수 있으므로, 왼쪽과 위쪽을 더한 값이 최적의 경로 합이된다.
따라서 graph[i][j] = graph[i-1][j] + graph[i][j-1] 공식이 만들어진다.
def solution(m, n, puddles):
grid = [[0]*(m+1) for _ in range(n+1)]
grid[1][1] = 1
for i in range(n+1):
for j in range(m+1):
if [i, j] == [1, 1] or [j, i] in puddles:
continue
grid[i][j] = grid[i-1][j] + grid[i][j-1]
return grid[n][m] % 1000000007
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스-DFS/BFS] 타겟 넘버_파이썬 ❌❌ (0) | 2021.03.23 |
---|---|
[프로그래머스-동적계획법] 도둑질_파이썬 ❌⭕ (0) | 2021.03.23 |
[프로그래머스-동적계획법] 정수 삼각형_파이썬 ❌⭕ (0) | 2021.03.22 |
[프로그래머스-동적계획법] N으로 표현_파이썬 ❌❌ (0) | 2021.03.22 |
[프로그래머스-탐욕법] 단속카메라_파이썬 ❌⭕ (0) | 2021.03.22 |