기록하고 까먹지 말기

11051 본문

전공/백준

11051

yha97 2022. 10. 3. 14:54

날짜 : 2022. 10. 03

사용 언어 : python

 

문제

 

 

코드

런타임 에러(자릿수가 커졌기 때문에 스택 오버플로우 발생)

import sys

n, k = map(int, sys.stdin.readline().split())
result = 1
for i in range(k):
    result *= (n - i)
for i in range(k):
    result /= (k - i)
print(int(result) % 10007)

 

math 라이브러리의 factorial 함수 사용하여 풀이

import sys
import math

n, k = map(int, sys.stdin.readline().split())
result = math.factorial(n) // (math.factorial(n-k) * math.factorial(k))
result = result % 10007
print(result)

 

알게된 점

- math 라이브러리를 사용하지 않고 대부분 손으로 구현하려고 하다보니까 오답이 많이 발생했다.

- 그리고 이 문제는 DP(다이나믹 프로그래밍) 방식으로 풀이하는 방식도 있었기 때문에 이를 참고하여 한번 더 풀이하기로 했다.

 

 

참고 사이트

 

'전공 > 백준' 카테고리의 다른 글

1010  (0) 2022.10.03
파스칼의 삼각형  (0) 2022.10.03
11050  (0) 2022.10.03
2981  (0) 2022.10.02
3036  (0) 2022.10.01