코딩 테스트/프로그래머스

[Python] 프로그래머스 lv. 0 분수의 덧셈

위시리 2025. 3. 26. 17:28

 

풀이

[ 분자1, 분모1 ] + [ 분자2, 분모2 ] 라고 할 때

분수의 합에서

  • 분자 = ( 분자1 * 분모2 ) + ( 분자2 * 분모1 )
  • 분모 = ( 분모1 * 분모2 )

기약 분수로 나타내려면

분자와 분모의 최대공약수로 분자, 분모를 나눠주면 된다.

 

정답 코드

import math

def solution(numer1, denom1, numer2, denom2):
    answer = []
    # 분자
    numer = numer1 * denom2 + numer2 * denom1
    # 분모
    denom = denom1 * denom2
    
    # 최대공약수
    n = math.gcd(numer, denom)
    
    answer = [numer//n, denom//n]
    
    return answer