728x90

종이에 써가면서 dp 문제임을 알고 규칙을 찾으려고 했으나 안보였다. 구글링을 해보니 규칙은 얼추 맞았지만 H, W 를 분리해서 이차원 리스트를 만들어서 써보면 규칙이 보였고 이를 토대로 코드를 만들었다. 

 

import sys
from itertools import permutations
 
 
 
 
dp = [[0]*31 for i in range(31)]
 
 
 
for i in range(1,31):
    dp[0][i] = 1
 
 
for i in range(1,31):
    for j in range(i,31):
        dp[i][j] += dp[i-1][j] + dp[i][j-1]
 
 
 
while True:
 
    k = int(sys.stdin.readline())
 
    if k == 0:
        break
 
 
 
    # 즉, 앞에서 부터 1 의 개수가 0 의 개수 이상이여야 
 
 
    print(dp[k][k])
 
 
 
 
 
 
 
728x90

+ Recent posts