MUKER_DEV with iOS

[swift] programmers LV1 μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅λ°°μˆ˜ λ³Έλ¬Έ

πŸ€– μ•Œκ³ λ¦¬μ¦˜/programmers

[swift] programmers LV1 μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅λ°°μˆ˜

MUKER 2022. 6. 21. 22:50
제 문제 ν’€μ΄λŠ” μ΅œμ„ μ˜ 풀이가 아닐 수 μžˆμŠ΅λ‹ˆλ‹€. 문제λ₯Ό ν‘ΈλŠ” 방법은 λ‹€μ–‘ν•©λ‹ˆλ‹€!

λ¬Έμ œμ„€λͺ…

두 μˆ˜λ₯Ό μž…λ ₯λ°›μ•„ λ‘ μˆ˜μ˜ μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅λ°°μˆ˜λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜, solution을 μ™„μ„±ν•΄ λ³΄μ„Έμš”. λ°°μ—΄μ˜ λ§¨ μ•žμ— μ΅œλŒ€κ³΅μ•½μˆ˜, κ·Έλ‹€μŒ μ΅œμ†Œκ³΅λ°°μˆ˜λ₯Ό λ„£μ–΄ λ°˜ν™˜ν•˜λ©΄ λ©λ‹ˆλ‹€. μ˜ˆλ₯Ό λ“€μ–΄ λ‘ μˆ˜ 3, 12의 μ΅œλŒ€κ³΅μ•½μˆ˜λŠ” 3, μ΅œμ†Œκ³΅λ°°μˆ˜λŠ” 12μ΄λ―€λ‘œ solution(3, 12)λŠ” [3, 12]λ₯Ό λ°˜ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

 

μ œν•œ 쑰건

  • 두 μˆ˜λŠ” 1이상 1000000μ΄ν•˜μ˜ μžμ—°μˆ˜μž…λ‹ˆλ‹€.

 

μž…μΆœλ ₯ 예

n m return
3 12 [3,12]
2 5 [1,10]

 

문제 뢄석

1. μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•˜λŠ” μ•Œκ³ λ¦¬μ¦˜μ„ μ•Œμ•„μ•Ό 함.

2. μ΅œλŒ€κ³΅μ•½μˆ˜λŠ” μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•μ„ μ΄μš©ν•΄ κ΅¬ν–ˆλ‹€.

3. μ΅œμ†Œλ°°μˆ˜λŠ” μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό μ΄μš©ν•΄ κ΅¬ν–ˆλ‹€.

 

Solution.swift

func solution(_ n:Int, _ m:Int) -> [Int] {
   
    let g = gcd(n,m)
    let l = lcm(n,m)
    
    return [g,l]
}

func gcd(_ a: Int, _ b: Int) -> Int {

    // μž…λ ₯받은 a 와 b의 λ‚˜λ¨Έμ§€λ₯Ό result값에 λ„£μ–΄μ€λ‹ˆλ‹€.
    let result = a % b
    
    
    // μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•˜λŠ” 방법
    if result != 0 {
        return gcd(b, result)
    } else {
        return b
    }
}
    
    // μ΅œμ†Œκ³΅λ°°μˆ˜λ₯Ό κ΅¬ν•˜λŠ” 방법
    func lcm(_ a: Int, _ b: Int) -> Int {
        let result = a * b / gcd(a,b)
        
        return result
    }