ISTP의 간단명료 블로그

[프로그래머스] 구슬을 나누는 경우의 수 / python factorial, comb 본문

풀다

[프로그래머스] 구슬을 나누는 경우의 수 / python factorial, comb

djwis 2023. 6. 10. 15:06

문제

풀이

def solution(balls, share):

    return factorial(balls)/(factorial(balls-share)*factorial(share))

def factorial(n):
    if n<=1:
        return 1
    else:
        return n*factorial(n-1)

다른사람 풀이

import math


def solution(balls, share):
    return math.comb(balls, share)

배운점 

ㅇ import math 최고👍

함수 설명
math.ceil(x) x를 올림하여 정수값을 반환한다.
math.floor(x) x를 내림하여 정수값을 반환한다.
math.fabs(x) x의 절댓값을 반환한다.
math.trunc(x)
x의 소수점을 자른 후 정수값을 반환합니다.
math.copysign(x, y) x값의 절댓값에 y의 부호를 갖는 유리수를 반환한다.
math.comb(n, k) nCk과 같은 조합 값을 반환한다. (n개의 수에서 k개를 선택)
math.perm(n, k) nPk와 같은 순열 값을 반환한다. (n개의 수에서 k를 꺼내 순서대로 나열)
math.factorial(x) x의 팩토리얼을 반환합니다. (1*2*3*...*x)
math.fmod(x, y) x에 y를 나눈 후 나머지를 제공한다. (부동소수점 연산에 사용)
math.frexp(x) x를 (m * 2 ** e) 형태로 반환합니다.
math.ldexp(x, i) x * 2 ** i 값을 반환합니다.
math.fsum(iterable) 이터러블(iterable)에 있는 값의 정확한 부동 소수점 합을 반환합니다.
math.prod(iterable) 이터러블(iterable)의 모든 수의 곱을 반환합니다. (빈 경우 1을 반환)
math.gcd(integers) 여러개의 정수를 받아 최대 공약수를 반환합니다.
math.lcm(integers) 여러개의 정수를 받아 최소 공약수를 반환합니다.
math.isclose(a, b) a의 실수 연산이 b와 같은지 확인하고 bool 값을 반환합니다.
math.isfinite(x) x값이 무한하거나 Nan(Not a number) 일경우 True 값을 반환합니다.
math.isinf(x) x가 양 또는 음의 무한대이면 True, 반대일 경우 False를 반환합니다.
math.isnan(x) x가 Nan(Not a number)일경우 True, 반대일 경우 False를 반환합니다.
math.isqrt(n) n의 음이 아닌 정수 제곱근을 반환합니다.
math.modf(x) x의 (소수, 정수)부분으로 반환합니다. 정수부분은 float로 반환됩니다.