[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] Lv1. μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅λ°°μˆ˜

2022. 10. 10. 13:40γ†μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅/ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€_2022

728x90

 

문제 μ„€λͺ…

두 수λ₯Ό μž…λ ₯λ°›μ•„ 두 수의 μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅λ°°μˆ˜λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜, 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
μžμ—°μˆ˜ 2와 5의 μ΅œλŒ€κ³΅μ•½μˆ˜λŠ” 1, μ΅œμ†Œκ³΅λ°°μˆ˜λŠ” 10μ΄λ―€λ‘œ [1, 10]을 리턴해야 ν•©λ‹ˆλ‹€.

 

λ‚˜μ˜ 풀이

μ΅œλŒ€κ³΅μ•½μˆ˜ : 두 μžμ—°μˆ˜μ˜ κ³΅ν†΅λœ μ•½μˆ˜ 쀑 κ°€μž₯ 큰 수 

μ΅œμ†Œκ³΅λ°°μˆ˜: 두 μžμ—°μˆ˜μ˜ κ³΅ν†΅λœ 배수 쀑 κ°€μž₯ μž‘μ€ 수 

 

μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•˜κΈ° μœ„ν•΄ μš°μ„  Math.min을 ν†΅ν•΄μ„œ 두 수 쀑 μž‘μ€ 값을 κ΅¬ν•˜κ³ , 

κ±°κΈ°μ„œ for문을 λŒλ €μ„œ n, m 수 둜 λ‚˜λˆ λ–¨μ–΄μ§€λŠ” 값을 κ΅¬ν•œλ‹€. 

 

그리고 κ·Έ 값이 μ΅œλŒ€κ³΅μ•½μˆ˜κ°€ 되고, μ΅œμ†Œκ³΅λ°°μˆ˜λŠ” 주어진 두 수λ₯Ό κ³±ν•˜κ³  μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό λ‚˜λˆ„λ©΄ ꡬ할 수 μžˆλ‹€.

 

 

λ‹€λ₯Έ μ‚¬λžŒ 풀이  

μž¬κ·€ν•¨μˆ˜λ‘œ μ΅œλŒ€κ³΅μ•½μˆ˜λž‘ μ΅œμ†Œκ³΅λ°°μˆ˜λ₯Ό κ΅¬ν•œ 풀이이닀. 

gcd ν•¨μˆ˜λ‘œ μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•˜κ³  κ±°κΈ°μ„œ κ΅¬ν•œ 값을 (a * b)에 λ‚˜λˆ„λ©΄ μ΅œμ†Œκ³΅λ°°μˆ˜λ₯Ό ꡬ할 수 μžˆλ‹€. 

 

gcd λ©”μ„œλ“œλ₯Ό 보면 p와 q의 μˆ˜κ°€ μ£Όμ–΄μ‘Œλ‹€κ³  ν•  λ•Œ 

p % q κ°€ 0이면 μ΅œλŒ€ κ³΅μ•½μˆ˜μ— ν•΄λ‹Ήλ˜κΈ° λ•Œλ¬Έμ— return pλ₯Ό ν•΄μ£Όκ³ , 

μ•„λ‹ˆλ©΄ 계속 λ°˜λ³΅ν•˜λ©΄μ„œ μ΅œλŒ€κ³΅μ•½μˆ˜λ₯Ό κ΅¬ν•œλ‹€. 

 

2개의 μžμ—°μˆ˜  a, b에 λŒ€ν•΄μ„œ aλ₯Ό b둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό r이라 ν•˜λ©΄ (단 a>b), a와 b의 μ΅œλŒ€κ³΅μ•½μˆ˜λŠ” b와 r의 μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ κ°™λ‹€. 이 μ„±μ§ˆμ— 따라, bλ₯Ό r둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€ r0λ₯Ό κ΅¬ν•˜κ³ , λ‹€μ‹œ r을 r0둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€λ₯Ό κ΅¬ν•˜λŠ” 과정을 λ°˜λ³΅ν•˜μ—¬ λ‚˜λ¨Έμ§€κ°€ 0이 λ˜μ—ˆμ„ λ•Œ λ‚˜λˆ„λŠ” μˆ˜κ°€ a와 b의 μ΅œλŒ€κ³΅μ•½μˆ˜μ΄λ‹€.

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90