본문 바로가기
코딩테스트/코딩테스트 문제

(파이썬) 최대공약수 구하기: gcd 사용법 및 프로그래머스 예제/N개의최소공배수 풀이

by 공부가싫다가도좋아 2021. 7. 12.
반응형

파이썬 gcd사용법


from math import gcd

answer = gcd(2,4,6)
answer2 = gcd(12,16,20,24)
print(answer) #결과: 2
print(answer2) #결과: 4

gcd (num1, num2....)

num1,num2....들의 최대공약수를 출력해 줍니다.


gcd관련 예제


문제풀러가기

https://programmers.co.kr/learn/courses/30/lessons/12953?language=python3 

 

코딩테스트 연습 - N개의 최소공배수

두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배

programmers.co.kr


문제 분석

1. 최소공배수를 구하는 라이브러리 lcm이 있지만,사용 불가능.

2. gcd()안의 argument는 2개까지만 넣을 수 있다.

3. 최대공약수로 최소공배수 구하는법: (x*y) // gcd(x,y)


코드

from math import gcd
def solution(arr):
    result = arr[0]
    for i in arr:
        result = (result*i)//gcd(result,i)
    return result

코드 풀이

1. arr = [2, 6, 8, 14] 일 때, 처음에는 2와 기자신의 최소공배수를 구한다.

2*2=4, 4//gcd(2,2) = 2,

 

두번째는 위에서 얻은 최소공배수와 그 다음 원소 6의 최소공배수를 구한다.

2*6 =12, 12//gcd(2,6) = 6,

 

6*8 = 48, 48//gcd(6,8) = 24,

 

24*14=336, 336//gcd(24,14) = 168.

 

최종적으로 168을 반환한다.


<잡담 & 배운점>

배운점은 gcd(num1, num2....) : 최대공약수를 구해주는 math모듈이있다 것.

요즘 프로젝트하느라 간단한 코테문제만 풀고 있당... ㅠ_ㅠ

반응형

댓글