๐Ÿฏ ์•Œ๊ณ ๋ฆฌ์ฆ˜/BOJ

[๋ฐฑ์ค€/Python] 11051:์ดํ•ญ ๊ณ„์ˆ˜ 2

๊ณ„๋ž€์†Œ๋…„ 2024. 6. 27. 16:58

https://www.acmicpc.net/problem/11051

์ดˆ๊ธฐ์ฝ”๋“œ

n, k = map(int,input().split())

def fun(n,k):
    if k==n or k==0:
        return 1
    else:
        return fun(n-1,k-1)+fun(n-1,k)
print(fun(n,k)%10007)

์‹œ๊ฐ„์ดˆ๊ณผ๋‚œ๋‹ค

์žฌ๊ท€(๋ฉ”๋ชจ์ด์ œ์ด์…˜)

import sys

n, k = map(int,input().split())
sys.setrecursionlimit(10**7)

cache = [[0]*1001 for _ in range(1001)]

def fun(n,k):
    if cache[n][k]:
    # 0์ด ์•„๋‹Œ ์ˆ˜๋ผ๋ฉด
        return cache[n][k]
    if k==n or k==0:
        cache[n][k]= 1
    else:
        cache[n][k] = fun(n-1,k-1)+fun(n-1,k)
    return cache[n][k]

print(fun(n,k)%10007)

์ด๋ฒˆ์—” ๋ฐ”ํ…€์—… ๋ฐฉ์‹์ธ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ํ’€์–ด๋ณด์ž (ํƒ€๋ทธ๋ ˆ์ด์…˜)

n, k = map(int,input().split())

cache = [[0]* 1001 for _ in range(1001)]

for i in range(1001):
    cache[i][0] = cache[i][i] =1
    for j in range(1, i):
        cache[i][j] = cache[i-1][j-1] + cache[i-1][j]

print(cache[n][k] %10007)