[프로그래머스]분수의 덧셈(Swift)

이창형·2022년 12월 31일
0

코드

import Foundation

// 최대공약수 구하는 함수
func gcd(_ a: Int, _ b: Int) -> Int {
    if a % b == 0 {
        return b
    }
    return gcd(b, a % b)
}

func solution(_ denum1:Int, _ num1:Int, _ denum2:Int, _ num2:Int) -> [Int] {
	// 분자의 최대값
    var maxDenum = denum1 * num2 + denum2 * num1
    // 분모의 최대값
    var maxNum = num1 * num2
    // 분자최대값과 분모최대값의 최대공약수
    var gcdValue = gcd(maxDenum, maxNum)
    // 각각 최대공약수로 나눠줌
    var result = [maxDenum / gcdValue, maxNum / gcdValue]
    
    return result
}

설명

  • 분모끼리 값을 통일을 해야 하기 때문에 분모끼리 곱을 하고 분자에도 곱한 수만큼 곱해주었습니다.
  • 분모와 분자가 나누기가 될 수도 있기 때문에 분모와 분자의 최대공약수를 구하여 나누어 주었습니다.
profile
iOS Developer

0개의 댓글