πŸ—οΈ Algorithm/⬛ ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

[Programmers] [Python] Level1_μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅λ°°μˆ˜

Dbswnstjd 2022. 2. 25. 23:57

https://programmers.co.kr/learn/courses/30/lessons/12940

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅λ°°μˆ˜

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

programmers.co.kr

 

풀이

# ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 1단계 - μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ μ΅œμ†Œκ³΅λ°°μˆ˜
import math
def lcm(a,b):
  return (a * b) // math.gcd(a,b)

def solution(a, b):
    c = math.gcd(a,b)
    d = lcm(a,b)
    answer = [c,d]

    return answer

print(solution(2,5))

λ‚΄μž₯ ν•¨μˆ˜μΈ gcd 와 lcm을 μ‚¬μš©ν•˜λ €κ³  ν–ˆμœΌλ‚˜ lcm이 μ‚¬μš©ν•  수 μ—†μ–΄μ„œ λ”°λ‘œ ν•¨μˆ˜λ₯Ό λ§Œλ“€μ–΄ μ£Όμ—ˆλ‹€.

λ‚΄μž₯ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ€ 풀이

def gcdlcm(a, b):
    c, d = max(a, b), min(a, b)
    t = 1
    while t > 0:
        t = c % d
        c, d = d, t
    answer = [c, int(a*b/c)]

    return answer