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

쿄코코

페이지 맨 위로 올라가기

쿄코코

얼레벌레 생활🤯

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

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

    20152번: Game Addiction

    첫째 줄에 집과 PC방의 좌표 (H, H), (N, N) 을 나타내는 두 정수 H, N (0 ≤ H, N ≤ 30) 이 차례로 주어진다.

    www.acmicpc.net

    예제 설명

    (8,8) -> (4,4) 를 가는 방법의 수는 (4,4) -> (8,8) 로 가는 방법의 수랑 동일하다. 

    이 방법의 수는 y>x인 곳은 침수되어서 갈 수 없다고 하였으므로 (4,5),(4,6),,, 이 모든 값은 0이라고 볼 수 있다.

    (4,4)의 점을 (0,0)이라고 가정하고, (8,8)의 점을 (4,4)라고 가정하고나서 표를 작성하면 다음과 같다

     

    점화식 | if j>=i : 

          dp[j][i] = dp[j-1][i] + dp[j][i-1]

    j \ i 4=0 5=1 6=2 7=3 8=4
    4=0 1 1 1 1 1
    5=1 0 1 2 3 4
    6=2 0 0 2 5 9
    7=3 0 0 0 5 14
    8=4 0 0 0 0 14

    풀이 설명
    ① h,n을 받은 후에 hn=(h와 n의 절댓값) +1이라고 가정
    ② dp를 hn * hn 구조로 배열 선언
    ③ j=0인 값은 모두 1로 초기화
    ④ 그 후에는 점화식(if j>=i: dp[j][i]=dp[j-1][i]+dp[j][i-1]) (i : 1 - hn , j : 1-hn ) 

    Python(파이썬)

    import sys
    h,n = map(int,sys.stdin.readline().split())
    #둘의 절댓값 +1 
    hn = abs(h-n)+1
    dp = [[0]*(hn) for _ in range(hn)]
    
    //1로 초기화
    for i in range(hn):
        dp[0][i]=1
    //점화식
    for i in range(1,hn):
        for j in range(1,hn):
        	#i값이 j보다 크거나 같은 경우
            if i>=j:
                dp[j][i]=dp[j-1][i]+dp[j][i-1]
    
    
    print(dp[hn-1][hn-1])

    Java(자바)

    자바에서는 조심하기 !! dp를 long[][] 배열로 선언하기!!!

    import java.io.*;
    import java.util.*;
    
    public class Main {
        public static void main(String[] args) throws IOException{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            StringTokenizer st= new StringTokenizer(br.readLine()," ");
            int h = Integer.parseInt(st.nextToken());
            int n = Integer.parseInt(st.nextToken());
            int hn = Math.abs(h-n)+1;
            long[][] dp = new long[hn][hn];
            for(int i=0;i<hn;i++){
                dp[0][i]=1;
            }
            for(int i=1;i<hn;i++){
                for(int j=1;j<hn;j++){
                    if(j>=i)
                        dp[i][j]=dp[i-1][j]+dp[i][j-1];
                }
            }
    
            System.out.println(dp[hn-1][hn-1]);
        }
    }
    반응형

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

    백준 1495(기타리스트) - Python(파이썬),Java(자바) - 다이나믹 프로그래밍  (0) 2022.06.23
    백준 1890(점프) - Python(파이썬) - 다이나믹  (0) 2022.06.20
    백준 14494(다이나믹이 뭐에요?) - Python(파이썬) - 다이나믹  (0) 2022.06.02
    백준 2096(내려가기) - Python(파이썬) - 다이나믹 프로그래밍,메모리 초과  (0) 2022.05.30
    백준 2502(떡 먹는 호랑이) - Python(파이썬) - 다이나믹프로그래밍  (0) 2022.05.30

    댓글

    이 글 공유하기

    • 구독하기

      구독하기

    • 카카오톡

      카카오톡

    • 라인

      라인

    • 트위터

      트위터

    • Facebook

      Facebook

    • 카카오스토리

      카카오스토리

    • 밴드

      밴드

    • 네이버 블로그

      네이버 블로그

    • Pocket

      Pocket

    • Evernote

      Evernote

    다른 글

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

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

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

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

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

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

      2022.06.02
    • 백준 2096(내려가기) - Python(파이썬) - 다이나믹 프로그래밍,메모리 초과

      백준 2096(내려가기) - Python(파이썬) - 다이나믹 프로그래밍,메모리 초과

      2022.05.30
    다른 글 더 둘러보기

    정보

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

    쿄코코

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

    검색

    메뉴

    • 홈

    카테고리

    • 분류 전체보기 (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)

    최근 글

    인기 글

    댓글

    공지사항

    아카이브

    태그

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

    나의 외부 링크

    정보

    쿄코코의 쿄코코

    쿄코코

    쿄코코

    블로그 구독하기

    • 구독하기
    • RSS 피드

    방문자

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

    티스토리

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

    티스토리툴바