본문 바로가기
코딩테스트/프로그래머스

[프로그래머스][Lv.1][Python] 최대공약수와 최소공배수

by Hwan,. 2022. 9. 20.
728x90
반응형

1. 문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

2. 접근 방식

  • 최대 공약수 :  두 수 이상의 여러 수의 공약수 중 최대인 수 -> n과 m에 동시에 나눠지는 i 중 가장 큰 값
  • 최소 공배수 :  두 수 이상의 여러 수의 공배수 중 최소인 수 -> n과 m을 곱한 값을 최대 공약수로 나눈 값 (유클리드 호제법)
  • 더 쉬운 방법 : math 패키지 활용
import math

math.gcd(a, b)
math.lcm(a, b)

 

3. 코드

def solution(n, m):
    answer = [1, 0]
    
    # GCD
    for i in range(1, m+1):
        if n%i ==0 and m%i==0:
            answer[0] = i
            
    # LCM
    answer[1] = n * m // answer[0]

    return answer

 

4. 결과

728x90
반응형

댓글