프로그래머스(Python) 풀이/Level.1

프로그래머스(Python) 12940번 최대공약수와 최소공배수 풀이

개발윗미 2022. 3. 31. 16:18

Python으로 구현한 12940번 최대공약수와 최소공배수 문제 풀이입니다.

 

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

 

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

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

programmers.co.kr


def solution(n, m):
    answer = []
    # 최대 공약수
    value = min(n, m)
    for i in range(value, 0, -1) :
        if n % i == 0 and m % i == 0 :
            answer.append(i)
            break
    # 최소 공배수
    value = max(n, m)
    for i in range(value, value * value) :
        if i % n == 0 and i % m == 0 :
            answer.append(i)
            break
            
    return answer

 

1. 최대 공약수

  - 전달받은 n과 m의 값 중 작은 값을 value에 할당한다.

  - 반복문을 통해 value부터 1까지 거꾸로 값을 확인하여 그 값을 n과 m에 나눈 나머지 값이 모두 0일 경우 최대공약수이므로 answer 리스트에 추가한 후 반복문을 빠져나온다.

 

2. 최소 공배수

  - 전달받은 n과 m의 값 중 큰 값을 value에 할당한다.

  - 반복문을 통해 value부터 값을 확인하여 그 값에 n과 m을 나눈 나머지 값이 모두 0일 경우 최소 공배수이므로 answer 리스트에 추가한 후 반복문을 빠져나온다.