코테/프로그래머스
프로그래머스 level3 [등굣길] 파이썬
동 캄
2022. 1. 10. 14:09
반응형
https://programmers.co.kr/learn/courses/30/lessons/42898
코딩테스트 연습 - 등굣길
계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m =
programmers.co.kr
#프로그래머스 등굣길
def solution(m, n, puddles):
answer = 0
field=[[0]*(m) for _ in range(n)]
field[0][0]=1
for puddle in puddles:
y=puddle[0]
x=puddle[1]
field[x-1][y-1]=-1
i=0
while i<m:
if field[0][i]==-1:
break
else:
field[0][i]=1
i+=1
i=0
while i<n:
if field[i][0]==-1:
break
else:
field[i][0]=1
i+=1
if n==1:
if field[0][m-1]==1:
answer=1
return answer
else:
answer=0
return answer
elif m==1:
if field[n-1][0]==1:
answer=1
return answer
else:
answer=0
return answer
else:
for i in range(1,n):
for j in range(1,m):
if field[i][j]!=-1:
if field[i-1][j]==-1 and field[i][j-1]==-1:
pass
elif field[i-1][j]==-1:
field[i][j]=field[i][j-1]%1000000007
elif field[i][j-1]==-1:
field[i][j]=field[i-1][j]%1000000007
else:
field[i][j]=(field[i-1][j]+field[i][j-1])%1000000007
answer=field[n-1][m-1]
return answer
우리가 수학시간에 풀었던 최단경로 개수 찾기 문제이다.
문제가 정말 뭐 같다... 행과 열을 반대로 두고 풀어야한다. (m이 열, n이 행이다. puddle에서도 마찬가지)
반응형