첫 번째 분수의 분자와 분모를 뜻하는 denum1, num1, 두 번째 분수의 분자와 분모를 뜻하는 denum2, num2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요.
입출력 예
접근법 -
분모들의 곱을 분모로하는 최대의 분모와 분자를 찾아서 최대공약수로 나눈다.
모든 수의 최대공약수는 1부터 시작하며 그 위로 있을수도, 없을수도 있다.
func solution(_ denum1: Int, _ num1: Int, _ denum2: Int, _ num2: Int) -> [Int]{
//최대로 나오는 분자
let maxdenum = num1 * denum2 + num2 * denum1
//최대로 나오는 분모
let maxnum = num1 * num2
var minx = 1
//약분
for i in 1...maxdenum{
if(maxdenum % i == 0 && maxnum % i == 0){
minx = i
}
}
return [maxdenum / minx, maxnum / minx]
}