250x250
Link
λ‚˜μ˜ GitHub Contribution κ·Έλž˜ν”„
Loading data ...
Notice
Recent Posts
Recent Comments
관리 메뉴

Data Science LAB

[Python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ level2 (N개의 μ΅œμ†Œκ³΅λ°°μˆ˜) λ³Έλ¬Έ

πŸ“ Coding Test/Programmers

[Python] ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ level2 (N개의 μ΅œμ†Œκ³΅λ°°μˆ˜)

γ…… γ…œ γ…” γ…‡ 2022. 11. 26. 16:34
728x90

1. 문제 μ„€λͺ…

두 μˆ˜μ˜ μ΅œμ†Œκ³΅λ°°μˆ˜(Least Common Multiple)λž€ μž…λ ₯된 λ‘ μˆ˜μ˜ λ°°μˆ˜ μ€‘ κ³΅ν†΅μ΄ λ˜λŠ” κ°€μž₯ μž‘은 μˆ«μžλ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. μ˜ˆλ₯Ό λ“€μ–΄ 2와 7의 μ΅œμ†Œκ³΅λ°°μˆ˜λŠ” 14κ°€ λ©λ‹ˆλ‹€. μ •μ˜λ₯Ό ν™•μž₯ν•΄μ„œ, n개의 μˆ˜μ˜ μ΅œμ†Œκ³΅λ°°μˆ˜λŠ” n κ°œμ˜ μˆ˜λ“€μ˜ λ°°μˆ˜ μ€‘ κ³΅ν†΅μ΄ λ˜λŠ” κ°€μž₯ μž‘은 μˆ«μžκ°€ λ©λ‹ˆλ‹€. n개의 μˆ«μžλ₯Ό λ‹΄μ€ λ°°μ—΄ arr이 μž…λ ₯λ˜μ—ˆμ„ λ•Œ μ΄ μˆ˜λ“€μ˜ μ΅œμ†Œκ³΅λ°°μˆ˜λ₯Ό λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜, solution을 μ™„μ„±ν•΄ μ£Όμ„Έμš”.

 

 

 

 

2. μ œν•œ 사항

  • arr은 길이 1이상, 15μ΄ν•˜μΈ λ°°μ—΄μž…λ‹ˆλ‹€.
  • arr의 μ›μ†ŒλŠ” 100 μ΄ν•˜μΈ μžμ—°μˆ˜μž…λ‹ˆλ‹€.

 

 

 

 

3. λ‚΄ 풀이

from math import gcd
def solution(arr):
    def lcm(x, y):
        return x * y // gcd(x, y)

    while True:
        arr.append(lcm(arr.pop(), arr.pop()))
        if len(arr) == 1:
            return arr[0]

 

1. 두 개 숫자의 μ΅œμ†Œ 곡배수λ₯Ό κ΅¬ν•˜λŠ” ν•¨μˆ˜ lcm 생성 

2. array에 λ‹΄κ²¨μžˆλŠ” 숫자 쀑 μ΅œμ†Œ 곡배수λ₯Ό κ΅¬ν•˜λŠ”λ° μ‚¬μš©λ˜μ§€ μ•Šμ€ 숫자λ₯Ό 택해 λ‹€μ‹œ μ΅œμ†Œ 곡배수λ₯Ό ꡬ함

 

 

 

 

 

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

from fractions import gcd


def nlcm(num):      
    answer = num[0]
    for n in num:
        answer = n * answer / gcd(n, answer)

    return answer
728x90
Comments