본문 바로가기

두두의 알고리즘/문제

[기타] 프로그래머스 L1 '최소공약수와 최소공배수' (Python)

728x90

<문제 링크>

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

 

코딩테스트 연습 - 최대공약수와 최소공배수

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의

programmers.co.kr


<문제 풀이>

1. 공식을 이용하여 최대공약수를 구한다.

2. 최대공약수를 이용하여 최대공배수를 구한다.

 

<코드>

def gcd(a,b):
    while a!=0:
        t = b%a
        (b,a) = (a,t)
    return b
    
def solution(n, m):
    answer = []
    if m<n:
        n,m = m,n
    g = gcd(n,m)
    answer.append(g)
    answer.append((n*m)/g)
    
    return answer

 

<고쳐야 할 점>

  • 최대공약수, 최소공배수 공식 기억하기
  • 복습 알고리즘