๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/swift

[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0 ๋ถ„์ˆ˜์˜ ๋ง์…ˆ

by hyebin (Helia) 2022. 11. 29.
๋ฐ˜์‘ํ˜•
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.0 ๋ชจ์Œ

๋ถ„์ˆ˜์˜ ๋ง์…ˆ

๋ฌธ์ œ ์„ค๋ช…

์ฒซ ๋ฒˆ์งธ ๋ถ„์ˆ˜์˜ ๋ถ„์ž์™€ ๋ถ„๋ชจ๋ฅผ ๋œปํ•˜๋Š” denum1, num1, ๋‘ ๋ฒˆ์งธ ๋ถ„์ˆ˜์˜ ๋ถ„์ž์™€ ๋ถ„๋ชจ๋ฅผ ๋œปํ•˜๋Š” denum2, num2๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. 

๋‘ ๋ถ„์ˆ˜๋ฅผ ๋”ํ•œ ๊ฐ’์„ ๊ธฐ์•ฝ ๋ถ„์ˆ˜๋กœ ๋‚˜ํƒ€๋ƒˆ์„ ๋•Œ ๋ถ„์ž์™€ ๋ถ„๋ชจ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด์€ ๋ฐฐ์—ด์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • 0 <denum1, num1, denum2, num2 < 1,000

์ž…์ถœ๋ ฅ ์˜ˆ

denum1 num1 denum2 num2 result
1 2 3 4 [5, 4]
9 2 1 3 [29, 6]

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • 1 / 2 + 3 / 4 = 5 / 4์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ [5, 4]๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • 9 / 2 + 1 / 3 = 29 / 6์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ [29, 6]์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func gcd(_ n1: Int, _ n2: Int) -> Int{
        if(n2 == 0) {return n1}
        else {return gcd(n2, n1 % n2)}
}

func solution(_ denum1:Int, _ num1:Int, _ denum2:Int, _ num2:Int) -> [Int] {
    let num = num1 * num2
    let de = (denum1 * num2) + (denum2 * num1)
    let g = gcd(num, de)
    return [de/g, num/g]
}
๋ถ„๋ชจ๋Š” ๋‘ ๋ถ„๋ชจ(num1, num2)๋ฅผ ๊ณฑํ•˜์—ฌ ๊ตฌํ•˜๊ณ , ๋ถ„์ž๋Š” ๋ถ„์ž์— ์ƒ๋Œ€ ๋ถ„๋ชจ๋ฅผ ๊ณฑํ•œ ํ›„ ๋”ํ•ด์ค€๋‹ค.
gcd ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด  ๋ถ„๋ชจ์™€ ๋ถ„์ž์˜ "์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜"๋ฅผ ๊ตฌํ•œ๋‹ค.
๋ถ„๋ชจ์™€ ๋ถ„์ž๋ฅผ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋กœ ๋‚˜๋ˆˆ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

๋ฐ˜์‘ํ˜•