Programmers / 3단계 / 등굣길 / python / 동적계획법(Dynamic Programming)

2024. 3. 28. 19:02·코딩테스트/programmers (python)

 

https://school.programmers.co.kr/learn/courses/30/lessons/42898

 

 

모범 답안

def solution(m, n, puddles):
    puddles = [[q,p] for [p,q] in puddles]
    dp = [[0] * (m+1) for _ in range(n+1)]
    dp[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:
                dp[i][j] = 0
            else:
                dp[i][j] = (dp[i - 1][j] + dp[i][j - 1]) % 1000000007
    return dp[n][m]

웅덩이의 위치 puddles의 좌표가 반대로 되어있기 때문에 이를 주의하여 좌표를 반대로 적어주어야 한다.

dp를 초기화하고, 시작 위치인 dp[1][1]은 1로 설정한다. 

dp 테이블의 칸들을 순서대로 탐색한다.  현재 칸이 웅덩이일 경우 0으로 변환하고, 아닐 경우 왼쪽 칸과 위쪽 칸의 합을 1000000007로 나눈 값으로 변환한다.

 

 

참조

https://dev-note-97.tistory.com/141

 

'코딩테스트 > programmers (python)' 카테고리의 다른 글

Programmers / 3단계 / 두 큐 합 같게 만들기 / python / 2022 KAKAO TECH INTERNSHIP  (0) 2024.03.31
Programmers / 3단계 / 단속카메라 / python / 탐욕법(Greedy)  (0) 2024.03.29
Programmers / 2단계 / 소수 찾기 / python / 완전 탐색  (0) 2024.03.28
Programmers / 3단계 / 야근 지수 / python  (1) 2024.03.27
Programmers / 2단계 / [1차]프렌즈4블록 / python / 2018 KAKAO BLIND RECRUITMENT  (1) 2024.03.26
'코딩테스트/programmers (python)' 카테고리의 다른 글
  • Programmers / 3단계 / 두 큐 합 같게 만들기 / python / 2022 KAKAO TECH INTERNSHIP
  • Programmers / 3단계 / 단속카메라 / python / 탐욕법(Greedy)
  • Programmers / 2단계 / 소수 찾기 / python / 완전 탐색
  • Programmers / 3단계 / 야근 지수 / python
seulll
seulll
개인 공부 / 정리 블로그입니다
  • seulll
    seulll
    seulll
  • 전체
    오늘
    어제
    • 분류 전체보기 (320) N
      • 코딩테스트 (221) N
        • programmers (python) (155)
        • 백준 (python) (64) N
      • 자료구조 | 알고리즘 (14)
      • 개발 | 프로젝트 (18) N
        • Python (4)
        • Java | Spring (6)
        • Unity (3)
        • API (3)
      • CS (15)
        • Network (5)
        • SQL (2)
        • OS (4)
      • 데이터 분석 (14)
      • 기타 (12)
  • 블로그 메뉴

    • 홈
    • 태그
    • 글쓰기
    • 설정
  • 링크

    • GitHub
  • 인기 글

  • 태그

    asterisk
    API
    2 x n 타일링
    train_test_split
    박스플롯
    웹크롤링
    confusion matrix
    대입 표현식
    solving environment
    카카오맵 api
    백엔드 개발자 역량
    Greedy
    백엔드
    그리디 알고리즘
    프렌즈4블록
    오블완
    프로그래머스
    카카오맵
    kakao map api
    Python
    파이썬
    데이터분석
    Boxplot
    모델 성능 평가
    오차행렬
    백엔드 개발자
    코딩테스트
    티스토리챌린지
    바다코끼리
    야근 지수
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
seulll
Programmers / 3단계 / 등굣길 / python / 동적계획법(Dynamic Programming)
상단으로

티스토리툴바