[Python] 백준 #20152- Game Addiction

2022. 1. 7. 00:22·코딩테스트/백준[Python]

문제


 

20152번: Game Addiction

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

www.acmicpc.net

코드


My answer

import sys
input=sys.stdin.readline

h,n=map(int,input().split())
if(n>h):
    h,n=n,h
dp=[]

for i in range(h+1):
    dp.append([0]*(i+1))

for i in range(h,n-1,-1):
    for j in range(h,n-1,-1):
        if(i==h):
            dp[i][j]=1
        elif(j>i):
            continue
        else:
            if(i==j):
                dp[i][j]=dp[i+1][j]
            else:
                dp[i][j]=dp[i][j+1]+dp[i+1][j]
print(dp[n][n])

Another answer

H, P = map(int, input().split())
N = max(H, P) + 1
maps = [[0] * N for _ in range(N)]
if H > P:
    H, P = P, H
if H == P:
    print(1)
else:
    maps[H][H] = 0
    for i in range(H, P+1):
        maps[i][H] = 1
    for i in range(H+1, P+1):
        for j in range(H+1, P+1):
            if j > i: continue
            maps[i][j] = maps[i-1][j] + maps[i][j-1]
    print(maps[P][P])
from math import*
h,n=map(int,input().split())
d=abs(h-n)
print(comb(d*2,d)//-~d)

풀이


나는 어릴 때 수학문제 풀던 방식을 이용해서 규칙을 찾아냈다. 한 좌표에서 다른좌표까지의 최단거리를 찾던 방법을 그대로 식으로 만들어서 사용했다. 두번째 코드는 내 코드와 아예 동일한 방법을 좀더 깔끔하게 정리한 것이길래 가져와봤고 마지막 방법은 도저히 이해가 안가서 찾아보니 카탈란수열?을 이용했다고 한다. 궁금하신 분들은 카탈란수열에 대해서 공부해보길 바란다.

 

카탈란 수(catalan number)

카탈란 수(catalan number)로 불리는 수열이 있다. 핀란드 수학자 카탈란의 이름이 붙힌 이 수열을 기호로는 $C_n$으로 나타낸다. 이 수열은 여러 가지 다른 문제들을 풀이하는 과정에서 나타난다. 카

suhak.tistory.com

 

728x90

'코딩테스트 > 백준[Python]' 카테고리의 다른 글

[Python] 백준 #1806- 부분합[try_again]  (0) 2022.01.11
[Python] 백준 #15489- 파스칼 삼각형  (0) 2022.01.07
[Python] 백준 #17212- 달나라 토끼를 위한 구매대금 지불 도우미  (0) 2022.01.06
[Python] 백준 #2748- 피보나치 수 2  (0) 2022.01.06
[Python] 백준 #2839- 설탕 배달  (0) 2022.01.06
'코딩테스트/백준[Python]' 카테고리의 다른 글
  • [Python] 백준 #1806- 부분합[try_again]
  • [Python] 백준 #15489- 파스칼 삼각형
  • [Python] 백준 #17212- 달나라 토끼를 위한 구매대금 지불 도우미
  • [Python] 백준 #2748- 피보나치 수 2
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (471)
      • 알쓸신잡 (79)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    이분탐색
    파이썬
    이것이취업을위한코딩테스트다
    dp
    이코테
    DFS
    BFS
    나동빈
    백준
    그리디
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3

HOME

HOME

상단으로

티스토리툴바