이 영역을 누르면 첫 페이지로 이동
쿄코코 블로그의 첫 페이지로 이동

쿄코코

페이지 맨 위로 올라가기

쿄코코

얼레벌레 생활🤯

백준 1890(점프) - Python(파이썬) - 다이나믹

  • 2022.06.20 00:27
  • [백준] Python,Java로 풀기📖/다이나믹
    반응형
     

    1890번: 점프

    첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장

    www.acmicpc.net

    처음 생각한 풀이는 다이나믹 프로그래밍이아니라 DFS를 생각해서 풀었다.

    근데 시간제한에 걸리는걸로봐서 다이나믹 프로그래밍으로 다시 풀었다.

    예제 설명

    array 테이블

    ① dp 테이블로 모두 다 0을 만들기

    첫번째 줄 ( i=0 ) 

    ② dp 테이블 가장 왼쪽 위 칸(dp[0][0]) =1 

    ③ array 테이블에서 array[0][0]의 값이 2이므로 

        오른쪽 +2 -> dp[0][0+2] = dp[0][0]+dp[0][2]

         아래쪽 +2 -> dp[0+2][0] = dp[0][0] +dp[2][0]

    ④ array 테이블에서 array[0][2]의 값이 3이므로

    오른쪽 +3 -> n 넘어가기 때문에 X

    왼쪽 +3 -> dp[0+3][2]=dp[0][2]+dp[3][2]

    첫번째 줄 ( i=2 ) 

    ⑤ array 테이블에서 array[2][0]의 값이 1이므로 

        오른쪽 +1 -> dp[2][0+1] = dp[2][0]+dp[0][1]

         아래쪽 +1 -> dp[2+1][0] = dp[2][0] +dp[3][0]

    ⑥ array 테이블에서 array[2][1]의 값이 2이므로 

        오른쪽 +2 -> dp[2][1+2] = dp[2][1]+dp[2][3]

         아래쪽 +2 -> n 넘어가기 때문에 X

    ⑦ array 테이블에서 array[2][3]의 값이 1이므로

    오른쪽 +1 -> n 넘어가기 때문에 X

    왼쪽 +1 -> dp[2+1][3]=dp[2][3]+dp[3][3]

    첫번째 줄 ( i=3 ) 

    ⑧ array 테이블에서 array[3][0]의 값이 3이므로 

        오른쪽 +3 -> dp[3][0+3] = dp[3][0]+dp[3][3]

         아래쪽 +3 -> n 넘어가기 때문에 X

    ⑨ array 테이블에서 array[3][2]의 값이 1이므로 

        오른쪽 +1 -> dp[3][2+1] = dp[3][2]+dp[3][3]

         아래쪽 +1 -> n 넘어가기 때문에 X

     


    문제 풀이

    ① dp 테이블을 선언하고 왼쪽 맨위의 값을 1로 변경
    ②
    i + array[ i ][ j ]값이 n을 넘지 않을 경우 -> dp[ i+array[i][j] ][ j ] += dp[ i ][ j ]
    j + array[ i ][ j ]값이 n을 넘지 않을 경우 -> dp[ i ][ j+array[i][j] ] += dp[ i ][ j ]
    import sys
    n = int(sys.stdin.readline())
    array = []
    for i in range(n):
        array.append(list(map(int,sys.stdin.readline().split())))
    
    dp=[[0]*n for _ in range(n)]
    
    dp[0][0]=1
    for i in range(n):
        for j in range(n):
        	#n-1이고 n-1일 경우 그만두기
            if i==n-1 and j==n-1:
                break
            if i+array[i][j]<n:
                dp[i+array[i][j]][j]+=dp[i][j]
            if j+array[i][j]<n:
                dp[i][j+array[i][j]]+=dp[i][j]
    
    
    print(dp[n-1][n-1])
    반응형

    '[백준] Python,Java로 풀기📖 > 다이나믹' 카테고리의 다른 글

    백준 1463(1로 만들기) - Python(파이썬) - 다이나믹  (0) 2022.06.29
    백준 1495(기타리스트) - Python(파이썬),Java(자바) - 다이나믹 프로그래밍  (0) 2022.06.23
    백준 20152(Game Addiction) - Python(파이썬) - 다이나믹  (0) 2022.06.06
    백준 14494(다이나믹이 뭐에요?) - Python(파이썬) - 다이나믹  (0) 2022.06.02
    백준 2096(내려가기) - Python(파이썬) - 다이나믹 프로그래밍,메모리 초과  (0) 2022.05.30

    댓글

    이 글 공유하기

    • 구독하기

      구독하기

    • 카카오톡

      카카오톡

    • 라인

      라인

    • 트위터

      트위터

    • Facebook

      Facebook

    • 카카오스토리

      카카오스토리

    • 밴드

      밴드

    • 네이버 블로그

      네이버 블로그

    • Pocket

      Pocket

    • Evernote

      Evernote

    다른 글

    • 백준 1463(1로 만들기) - Python(파이썬) - 다이나믹

      백준 1463(1로 만들기) - Python(파이썬) - 다이나믹

      2022.06.29
    • 백준 1495(기타리스트) - Python(파이썬),Java(자바) - 다이나믹 프로그래밍

      백준 1495(기타리스트) - Python(파이썬),Java(자바) - 다이나믹 프로그래밍

      2022.06.23
    • 백준 20152(Game Addiction) - Python(파이썬) - 다이나믹

      백준 20152(Game Addiction) - Python(파이썬) - 다이나믹

      2022.06.06
    • 백준 14494(다이나믹이 뭐에요?) - Python(파이썬) - 다이나믹

      백준 14494(다이나믹이 뭐에요?) - Python(파이썬) - 다이나믹

      2022.06.02
    다른 글 더 둘러보기

    정보

    쿄코코 블로그의 첫 페이지로 이동

    쿄코코

    • 쿄코코의 첫 페이지로 이동

    검색

    메뉴

    • 홈

    카테고리

    • 분류 전체보기 (168)
      • Python (24)
        • 😈 99클럽 코테 스터디 4기 TIL (23)
        • 궁금한거 정리 (1)
      • SQL (16)
        • HackerRank (15)
      • [백준] Python,Java로 풀기📖 (71)
        • 정렬(Sorting) (6)
        • 그리디 (5)
        • 문자열 (7)
        • 수학 (3)
        • DFS&BFS (10)
        • 구현 (4)
        • 다이나믹 (17)
        • 이분탐색 (1)
        • 자료구조 (10)
        • 최단거리 (5)
        • 인덱스트리 (0)
      • [프로그래머스]Python,Java로 풀기 (6)
        • Level 1 (4)
        • Level 2 (2)
      • Study Platform📚 (25)
        • (운영체제) - 블로그 및 강의 참고 (0)
        • 김영한👨🏻‍🏫의 스프링 부트와 JPA 실무 완전 .. (5)
        • (알고리즘)- [이코테] 이것이 코딩테스트다 정리 (10)
        • 그림으로 배우는 Http&Network Basic (10)
      • 까먹을까봐 적는 것들 (4)
      • 테스트 보고 난 후..🤔 (0)
      • kt 에이블스쿨 (18)

    최근 글

    인기 글

    댓글

    공지사항

    아카이브

    태그

    • 코딩테스트준비
    • 백준
    • 오블완
    • 프로그래머스
    • 티스토리챌린지
    • 99클럽
    • TiL
    • 항해99

    나의 외부 링크

    정보

    쿄코코의 쿄코코

    쿄코코

    쿄코코

    블로그 구독하기

    • 구독하기
    • RSS 피드

    방문자

    • 전체 방문자
    • 오늘
    • 어제

    티스토리

    • 티스토리 홈
    • 이 블로그 관리하기
    • 글쓰기
    Powered by Tistory / Kakao. © 쿄코코. Designed by Fraccino.

    티스토리툴바