λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
⌨️ Language/swift

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ LV.0] μœ ν•œμ†Œμˆ˜ νŒλ³„ν•˜κΈ°

by hyebin (Helia) 2023. 1. 4.
λ°˜μ‘ν˜•

μœ ν•œμ†Œμˆ˜ νŒλ³„ν•˜κΈ°

문제 μ„€λͺ…

μ†Œμˆ˜μ  μ•„λž˜ μˆ«μžκ°€ κ³„μ†λ˜μ§€ μ•Šκ³  μœ ν•œκ°œμΈ μ†Œμˆ˜λ₯Ό μœ ν•œμ†Œμˆ˜λΌκ³  ν•©λ‹ˆλ‹€. λΆ„μˆ˜λ₯Ό μ†Œμˆ˜λ‘œ κ³ μΉ  λ•Œ μœ ν•œμ†Œμˆ˜λ‘œ λ‚˜νƒ€λ‚Ό 수 μžˆλŠ” λΆ„μˆ˜μΈμ§€ νŒλ³„ν•˜λ €κ³  ν•©λ‹ˆλ‹€. μœ ν•œμ†Œμˆ˜κ°€ 되기 μœ„ν•œ λΆ„μˆ˜μ˜ 쑰건은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

  • κΈ°μ•½λΆ„μˆ˜λ‘œ λ‚˜νƒ€λ‚΄μ—ˆμ„ λ•Œ, λΆ„λͺ¨μ˜ μ†ŒμΈμˆ˜κ°€ 2와 5만 μ‘΄μž¬ν•΄μ•Ό ν•©λ‹ˆλ‹€.

두 μ •μˆ˜ a와 bκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, a/bκ°€ μœ ν•œμ†Œμˆ˜μ΄λ©΄ 1을, λ¬΄ν•œμ†Œμˆ˜λΌλ©΄ 2λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄ μ£Όμ„Έμš”.

μ œν•œ 사항

  • a, bλŠ” μ •μˆ˜
  • 0 < a ≤ 1,000
  • 0 < b ≤ 1,000

μž…μΆœλ ₯ 예

a b result
7 20 1
11 22 1
12 21 2

μž…μΆœλ ₯ 예 μ„€λͺ…

μž…μΆœλ ₯ 예 #1

  • λΆ„μˆ˜ 7/20은 κΈ°μ•½λΆ„μˆ˜μž…λ‹ˆλ‹€. λΆ„λͺ¨ 20의 μ†ŒμΈμˆ˜κ°€ 2, 5 이기 λ•Œλ¬Έμ— μœ ν•œμ†Œμˆ˜μž…λ‹ˆλ‹€. λ”°λΌμ„œ 1을 return ν•©λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #2

  • λΆ„μˆ˜ 11/22λŠ” κΈ°μ•½λΆ„μˆ˜λ‘œ λ‚˜νƒ€λ‚΄λ©΄ 1/2μž…λ‹ˆλ‹€. λΆ„λͺ¨ 2λŠ” μ†ŒμΈμˆ˜κ°€ 2 뿐이기 λ•Œλ¬Έμ— μœ ν•œμ†Œμˆ˜μž…λ‹ˆλ‹€. λ”°λΌμ„œ 1을 return ν•©λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #3

  • λΆ„μˆ˜ 12/21λŠ” κΈ°μ•½λΆ„μˆ˜λ‘œ λ‚˜νƒ€λ‚΄λ©΄ 4/7μž…λ‹ˆλ‹€. λΆ„λͺ¨ 7은 μ†ŒμΈμˆ˜κ°€ 7 μ΄λ―€λ‘œ λ¬΄ν•œμ†Œμˆ˜μž…λ‹ˆλ‹€. λ”°λΌμ„œ 2λ₯Ό return ν•©λ‹ˆλ‹€.

 

Hint

  • λΆ„μžμ™€ λΆ„λͺ¨μ˜ μ΅œλŒ€κ³΅μ•½μˆ˜λ‘œ μ•½λΆ„ν•˜λ©΄ κΈ°μ•½λΆ„μˆ˜λ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • μ •μˆ˜λ„ μœ ν•œμ†Œμˆ˜λ‘œ λΆ„λ₯˜ν•©λ‹ˆλ‹€.

제좜

import Foundation

func gcd(_ a: Int, _ b: Int) -> Int {
    return b == 0 ? a : gcd(b, a%b)
}

func solution(_ a:Int, _ b:Int) -> Int {
    var b = b/gcd(a,b)
    
    if b == 1 {return 1}
    
    while (b%2 == 0 || b%5 == 0) {
        b = b%2 == 0 ? b/2 : b/5
        if b == 1 {return 1}
    }
    return 2
}
λΆ„λͺ¨μ™€ λΆ„μžμ˜ μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•œ ν›„ μ•½λΆ„ν•΄ κΈ°μ•½ λΆ„μˆ˜λ₯Ό λ§Œλ“ λ‹€.
λΆ„λͺ¨κ°€ 1이라면 μ •μˆ˜, μœ ν•œμ†Œμˆ˜μ΄κΈ° λ•Œλ¬Έμ— 1을 λ°˜ν™˜ν•œλ‹€.
λΆ„λͺ¨κ°€ 2 λ˜λŠ” 5둜 λ‚˜λˆ„μ–΄μ§€μ§€ μ•Šμ„ λ•ŒκΉŒμ§€ λ°˜λ³΅ν•œλ‹€. λΆ„λͺ¨κ°€ 1이 되면 1을 μ•„λ‹ˆλΌλ©΄ 2λ₯Ό λ°˜ν™˜ν•œλ‹€.
λ°˜μ‘ν˜•