https://programmers.co.kr/learn/courses/30/lessons/42898
코딩테스트 연습 - 등굣길
계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m =
programmers.co.kr

풀이
문제를 보았을때 알수있는 힌트
오른쪽, 아래로만 움직이는 문제이며 웅덩이가 있는 곳은 지나가지 않는 문제이다.
dfs,bfs로 풀면 아마 시간 초과가 날 확률이 높을것이다.
이것은 dp로 풀어야한다.
시작하는 위치에서 오른쪽 왼쪽으로 이동시킬수있는 갯수를 추가하는 형식으로 진행하면 쉽게 풀 수 있는 문제이다.
def solution(m, n, puddles):
answer = 0
graph = [[0 for _ in range(m)] for _ in range(n)]
for x,y in puddles:
graph[y-1][x-1]=-1
graph[0][0]=1
for x in range(n):
for y in range(m):
# 오른쪽이 있는지 확인하기
if graph[x][y]!=-1:
if y+1<m and graph[x][y+1]!=-1:
graph[x][y+1] = (graph[x][y]+graph[x][y+1])%1000000007
if x+1<n and graph[x+1][y]!=-1:
graph[x+1][y] = (graph[x][y] +graph[x+1][y])%1000000007
answer=graph[n-1][m-1]
return answer

https://github.com/dydwkd486/coding_test/blob/main/programmers/등굣길.py
GitHub - dydwkd486/coding_test: 코딩테스트 공부한 내용 정리
코딩테스트 공부한 내용 정리. Contribute to dydwkd486/coding_test development by creating an account on GitHub.
github.com
'Coding Test > programmers' 카테고리의 다른 글
[프로그래머스] 디스크 컨트롤러- python (레벨 3) (0) | 2022.06.05 |
---|---|
[프로그래머스] 더 맵게- python (레벨 2) (0) | 2022.06.05 |
[프로그래머스] 정수 삼각형 - python (레벨 3) (0) | 2022.05.13 |
[프로그래머스] 가장 큰 정사각형 찾기 - python (레벨 2) (0) | 2022.05.13 |
[프로그래머스] 타겟 넘버 - python (레벨 2) (0) | 2022.04.10 |