📝 문제

⌨️ 입력

🖨 출력

⌨️ 예제 입력
5 2
🖨 예제 출력
10
📚 내가 제출한 코드
import sys
n, k = map(int, sys.stdin.readline().split())
if k == 0:
print(1)
elif k == 1:
print(n)
else:
numerator = 1; denominator = 1
if k > n - k:
k = n - k
for i in range(n, n - k, -1):
numerator *= i
for i in range(2, k + 1):
denominator *= i
print(numerator // denominator)
✏️ 내가 제출한 코드에 대한 설명
- sys.stdin.readline() : 키보드로 입력한 값을 받는 함수 (기존의 input() 보다 속도가 훨씬 빠르다.)
- a.split() : a를 빈칸 단위로 쪼개서 반환하는 함수
- map(a, b) : b의 원소 하나하나를 a에 대입한 것을 반환하는 함수
- k가 0일 때는 n값에 상관없이 결과값이 1이 나온다. (3 ~ 4번째 줄)
- k가 1일 때는 결과값으로 항상 n이 나온다. (5 ~ 6번째 줄)
- range(a, b, c) : a부터 b 되기 전까지 c씩 더한 값들을 반환하는 함수 (ex. range(5, -1, -1) = 5, 4, 3, 2, 1, 0)
- 마지막 줄에 '/'가 아니라 '//'을 사용한 이유 : '/'을 썼을 때 결과값이 실수 범위로 출력되기 때문
- 메모리 : 30864 KB
- 시간 : 76 ms
- 코드 길이 : 331 B