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
'🟢 알고리즘 문제 풀이 > Baekjoon' 카테고리의 다른 글
| [파이썬] 백준 16938 캠프 준비 (0) | 2023.04.14 |
|---|---|
| [파이썬] 백준 2595 부등호 (0) | 2023.04.13 |
| [파이썬] 백준 14179 빗물 (0) | 2023.04.10 |
| [파이썬] 백준 12904 A와 B (0) | 2023.04.09 |
| [파이썬] 백준 5582 공통 부분 문자열 (0) | 2023.04.09 |