1. ๋ฌธ์
2. ์ ์ถ๋ ฅ
3. ์ ์ถ๋ ฅ ์์
4. ๋ฌธ์ ์ค๊ณ
- ๋จผ์ ๊ฐ ๋ถ์ ๋ถ๋ชจ๋ฅผ ์ต๋๊ณต์ฝ์๋ก ๋๋ ํ, ๋ ๋ถ๋ชจ์ ์ต์๊ณต๋ฐฐ์๊ฐ ๋ ๋ถ์์ ํฉ ๋ถ๋ชจ๊ฐ ๋๊ณ , ๋ ๋ถ๋ชจ์ ์ต์๊ณต๋ฐฐ์๋ฅผ ๊ฐ ๋ถ๋ชจ๋ก ๋๋ ๋ชซ์ผ๋ก ๊ฐ ๋ถ์์ ๊ณฑํ์ฌ ๋ํจ์ผ๋ก์จ ๋ ์ด์ ์ฝ๋ถ ๋์ง ์๋ ๋ ์์ฐ์ ๋ถ์์ ํฉ ์ฆ, ๊ธฐ์ฝ๋ถ์๋ฅผ ๋ง๋ค ์ ์์
5. ์ ์ฒด ์ฝ๋
//
// main.swift
// FractionSum
//
// Created by ์ด์์ฌ on 2022/03/08.
//MARK: - fractionsum
//MARK: - Framework
import Foundation
//MARK: - Function
func getGCD(_ A: Int, _ B: Int) -> Int {
return A % B == 0 ? B : getGCD(B, A % B)
}
func getLCM(_ A: Int, _ B: Int) -> Int {
return A * B / getGCD(A, B)
}
func solution() -> Void {
//MARK: - Input
guard let inputOne = readLine()?.components(separatedBy: " ") else { return }
guard let inputTwo = readLine()?.components(separatedBy: " ") else { return }
var childOne: Int = inputOne.map { Int($0) }[0] ?? 0
var parentOne: Int = inputOne.map { Int($0) }[1] ?? 0
var childTwo: Int = inputTwo.map { Int($0) }[0] ?? 0
var parentTwo: Int = inputTwo.map { Int($0) }[1] ?? 0
var gcd: Int = 0
var lcm: Int = 0
var resultChild: Int = 0
var resultParent: Int = 0
//MARK: - Process
gcd = getGCD(childOne, parentOne)
childOne /= gcd
parentOne /= gcd
gcd = getGCD(childTwo, parentTwo)
childTwo /= gcd
parentTwo /= gcd
lcm = getLCM(parentOne, parentTwo)
resultChild = childOne * (lcm / parentOne) + childTwo * (lcm / parentTwo)
resultParent = lcm
//MARK: - Output
print("\(resultChild) \(resultParent)")
}
solution()
์ ์ฒด์ฝ๋๋ ์ฌ๊ธฐ์์ ํ์ธํ ์ ์์ต๋๋ค.
'Swift Data Structure And Algorithm > Basic Number Theory' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
beehive (0) | 2022.03.08 |
---|---|
findprime (0) | 2022.03.08 |
lcm (0) | 2022.03.08 |
PROSJEK (0) | 2022.03.08 |
fibonacci (0) | 2022.03.08 |