[Python] 백준알고리즘 #11050

📝 문제

⌨️ 입력

🖨 출력

⌨️ 예제 입력

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

좋은 웹페이지 즐겨찾기