🌠 문제

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

κΈ°μ•½λΆ„μˆ˜λ‘œ λ‚˜νƒ€λ‚΄μ—ˆμ„ λ•Œ, λΆ„λͺ¨μ˜ μ†ŒμΈμˆ˜κ°€ 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

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

🧞 풀이

function solution(a, b) {
    // μ΅œλŒ€ κ³΅μ•½μˆ˜ κ΅¬ν•˜κΈ°
    let gcd = 1;
    for ( let i = 2; i <= Math.min(a, b); i ++ ){
        if (a % i === 0 && b % i === 0) {
            gcd = i;
        }
    }
    let new_a = a / gcd;
    let new_b = b / gcd;
    
    while (new_b % 2 == 0 && new_b != 1) {
        new_b = new_b / 2;
    }
    
    while (new_b % 5 == 0 && new_b != 1) {
        new_b = new_b / 5;
    }
    
    if (new_b === 1) {
        return 1;
    } else {
        return 2;
    }
}

+ Recent posts