[프로그래머스] LV.0 분수의 덧셈 / 파이썬(Python)

디딧·2022년 11월 12일

프로그래머스

목록 보기
9/36

문제 설명

첫 번째 분수의 분자와 분모를 뜻하는 denum1, num1, 두 번째 분수의 분자와 분모를 뜻하는 denum2, num2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.

제한사항

0 < denum1, num1, denum2, num2 < 1,000

풀이

from fractions import Fraction

def solution(denum1, num1, denum2, num2):
    answer = Fraction(denum1, num1) + Fraction(denum2, num2)
    return [answer.numerator, answer.denominator]

다른 사람 풀이

import math

def solution(denum1, num1, denum2, num2):
    denum = denum1 * num2 + denum2 * num1
    num = num1 * num2
    gcd = math.gcd(denum, num)
    return [denum//gcd, num//gcd]

* 최대 공약수(greatest common divisor) 구하기

gcd 함수

import math 
math.gcd(3) # 3 반환
math.gcd(3, 6) # 3 반환
math.gcd(66, 22, 11) # 11 반환
profile
M.S. in Statistics, 2022 - present

0개의 댓글