사용 언어 - Python3
문제 - 등굣길
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
정답
DP 규칙 찾기 (정답 맞춘 여부 X)
0. input
puddles <= n,m으로 바꿔주기
0으로 채워진 n*m 리스트 dq 생성
dq[1][1] = 1 첫 시작점은 1로 채워주기
2. dq 진행
오른쪽 아래로만 이동하기 때문에, 두가지 경우가 있다.
같은 행 왼쪽에서 오는 경우 & 윗 행에서 내려오는 경우
2.1. 예외처리
[1,1]은 지나가기 continue
만약 지나가는 길에 puddles이 있다면 0으로 만든다.
2.2. 현재까지 값을 더해주면서 경로 이동
가장 마지막 도착했을 때 값 return
def solution(m, n, puddles):
answer = 0
puddles = [[q,p] for [p,q] in puddles]
dq = [[0]*(m+1) for _ in range(n+1)]
dq[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 [i,j] in puddles:
dq[i][j] = 0
else:
dq[i][j] = (dq[i][j-1] + dq[i-1][j]) % 1000000007
return dq[n][m]
레퍼런스
- 정답 풀이
[프로그래머스] 등굣길 / Python
문제주소 :programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지
dev-note-97.tistory.com
- 깃허브
GitHub - yyeongeun/codingtest: 코딩테스트 공부
코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.
github.com
'Algorithm > 동적계획법' 카테고리의 다른 글
[프로그래머스 lv 4] 도둑질 (0) | 2023.06.07 |
---|---|
[프로그래머스 lv 4] 사칙연산 (0) | 2023.06.07 |
[프로그래머스 lv 3] 정수 삼각형 (0) | 2023.06.02 |
다이나믹 프로그래밍? (0) | 2023.06.01 |
[Python3] 백준 1904번 01타일 (0) | 2023.04.06 |
댓글