본문 바로가기
코딩테스트-파이썬

python 코테를 위한 라이브러리 정리 -math, fractions-

by 시니성 2023. 7. 24.

* math.gcd(num1, num2)

두 수의 최대 공약수를 계산한다.

from math import gcd  # math 모듈에서 gcd 함수를 불러옵니다.

def solution(numer1, denom1, numer2, denom2):
    # 최소공배수를 계산하는 함수입니다.
    def lcm(a, b):
        return a * b // gcd(a, b)  # 두 수의 곱을 두 수의 최대공약수로 나누면 최소공배수가 됩니다.

    # 두 분수의 공통 분모를 찾습니다. 이는 두 분모의 최소공배수입니다.
    common_denominator = lcm(denom1, denom2)
    
    # 각 분수를 공통 분모로 만들어 준 후 분자를 더합니다.
    numer_sum = numer1 * (common_denominator // denom1) + numer2 * (common_denominator // denom2)
    
    # 더한 분수의 분자와 분모의 최대공약수를 찾습니다.
    gcd_result = gcd(numer_sum, common_denominator)
    
    # 더한 분수를 기약분수로 만들기 위해, 분자와 분모를 최대공약수로 나눕니다.
    # 그 결과를 분자와 분모의 순서대로 배열에 담아 반환합니다.
    return [numer_sum // gcd_result, common_denominator // gcd_result]

* math.sqrt()

제곱근을 계산 해 준다.

import math

num = 25
square_root = math.sqrt(num)
print(square_root)  # 출력: 5.0
num = 25
square_root = num ** 0.5
print(square_root)  # 출력: 5.0

* math.comb()

math.comb(n, k) 함수는 파이썬의 math 모듈에서 제공하는 함수로, 조합(combination)을 계산하는 함수입니다. 조합은 주어진 집합에서 특정 개수의 요소를 선택하는 경우의 수를 의미합니다. 이때 순서는 고려하지 않으며, 선택된 요소들의 순서는 중요하지 않습니다.

math.comb(n, k) 함수는 n개의 요소가 있는 집합에서 k개의 요소를 선택하는 조합의 개수를 반환합니다. n은 전체 집합의 크기이고, k는 선택할 요소의 개수입니다.

math.comb(n, k)의 수식은 다음과 같습니다:

C(n, k) = n! / (k! * (n-k)!)

여기서 "!"는 팩토리얼을 의미합니다.

math.comb() 함수를 사용하여 조합을 계산하는 예제를 살펴보겠습니다:

import math

# n개의 요소에서 k개의 요소를 선택하는 조합의 개수를 계산하는 함수
def calculate_combinations(n, k):
    try:
        combination_count = math.comb(n, k)
        return combination_count
    except ValueError:
        return "Error: n should be greater than or equal to k."

# 예제: 5개의 요소에서 2개의 요소를 선택하는 조합의 개수를 계산
n = 5
k = 2
result = calculate_combinations(n, k)
print(f"The number of combinations when selecting {k} elements from {n} elements: {result}")