나의 개발일지

[프로그래머스] Lv.3 등굣길 [Python, 파이썬] 본문

프로그래머스

[프로그래머스] Lv.3 등굣길 [Python, 파이썬]

YoonJuHan 2023. 12. 18. 14:05
  • 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42898
  • 🔑 DP (동적 계획법)
    • n, m 보다 1크게 리스트를 만든다.
    • 1, 1 시작 위치에 1을 표시한다.
    • 시작 위치일때와 물에 잠긴 지역일때는 건너뛴다. continue
    • 그냥 길이면 좌표의 위 값 + 왼쪽 값을 현재 위치에 넣는다.
      • 위에서 오는 경우와 왼쪽에서 오는 경우의 합

 

def solution(m, n, puddles):
    
    MAP = [[0] * (m+1) for _ in range(n+1)]
    MAP[1][1] = 1
    
    for r in range(1, n+1):
        for c in range(1, m+1):
            if r + c == 2 or [c, r] in puddles:
                continue
            else:
                MAP[r][c] = (MAP[r-1][c] + MAP[r][c-1]) % 1_000_000_007
    
    return MAP[-1][-1]

 

Comments