프로그래머스 분수의 덧셈

Apic·2023년 2월 17일
0

프로그래머스

목록 보기
89/162

💡문제 설명

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


🚫제한사항

  • 0 <numer1
    , denom1
    numer2
    , denom2
    < 1,000

🔢입출력 예

numer1denom1numer2denom2result
1234[5, 4]
9213[29, 6]

🔍입출력 예 설명

입출력 예 #1

  • 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다.

입출력 예 #2

  • 9 / 2 + 1 / 3 = 29 / 6입니다. 따라서 [29, 6]을 return 합니다.

💻코드

def solution(numer1, denom1, numer2, denom2):
    answer = []
    # 분모가 다를때
    if denom1 != denom2:
        num1 = numer1 * denom2
        den1 = denom1 * denom2
        num2 = numer2 * denom1
        den2 = denom2 * denom1
    
        sum_num = num1 + num2
        sum_den = denom1 * denom2
    # 분모가 같을 때
    else:
        sum_num = numer1 + numer2
        sum_den = denom1
    
    # 분자와 분모가 같을 때
    if sum_num == sum_den:
        answer = [1,1]
    # 다를 때
    else:
        for i in range(2, max(sum_num, sum_den)):
            # 나눌 수 있으면 나누기
            if (sum_num % i == 0) and (sum_den % i == 0):
                sum_num = sum_num // i
                sum_den = sum_den // i

        answer = [sum_num, sum_den]
    return answer

https://school.programmers.co.kr/learn/courses/30/lessons/120808?language=python3

profile
코딩 공부하는 사람

0개의 댓글