🧬 Biology/λ°”μ΄μ˜€ μ½”λ”© 문제

[ROSALIND] 뢀뢄적 μˆœμ—΄

HelloRabbit 2023. 6. 15. 23:12
728x90

문제 μ„€λͺ…

λΉ„μŠ·ν•œ 쒅은 κ³΅ν†΅μ μœΌλ‘œ 가진 μœ μ „μžλ“€λ„ λ§Žλ‹€. ν•˜μ§€λ§Œ μ§„ν™”ν•˜λ©΄μ„œ μœ μ „μžλ“€μ˜ μˆœμ„œλ“€μ— λ³€ν™”κ°€ 생길 수 있고 일뢀 μœ μ „μžλŠ” μ—†μ–΄μ§ˆμˆ˜λ„ 있기 λ•Œλ¬Έμ— μœ μ „μžλ“€μ˜ μˆœμ„œλ₯Ό ν™•μΈν•˜λ©΄ μœ μ „μž μž¬λ°°μ—΄μ΄ μ–΄λ–»κ²Œ λ˜μ—ˆλŠ”μ§€λ₯Ό μ•Œ 수 μžˆλ‹€.


문제 (풀어보기)

뢀뢄적 μˆœμ—΄μ΄λž€ 전체 nκ°œμ—μ„œ k개만 뽑은 ν›„ λͺ¨λ“  λ°°μ—΄ μˆœμ„œλ₯Ό κ³ λ €ν•˜λŠ” 것이닀. 이 λ•Œ, nκ³Ό kκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ λͺ¨λ‘ κ°€λŠ₯ν•œ μˆœμ„œμ˜ κ°œμˆ˜μ—μ„œ 1,000,000으둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό 좜λ ₯ν•˜μ‹œμ˜€.

μ˜ˆμ‹œ

21 7

μ˜ˆμƒ κ²°κ³Ό

51200

 

ν•΄κ²°

def factorial(n):
    ans = 1
    while n > 1:
        ans *= n
        n -= 1
    
    return ans

with open('rosalind_pper.txt', 'r') as f:
    n, k = map(int, f.readlines()[0].strip().split(' '))
print(int(factorial(n) / factorial(n-k) % 1000000))