본문 바로가기

코딩테스트

[프로그래머스(Programmers)/Level2](Python) N개의 최소공배수

 

<내코드>

 

<문제풀이>

최소공배수는 두 수의 곱을 두 수의 최대공약수로 나눈 것 이므로 최대공약수를 찾는 find_gc함수(유클리드 호제법 사용)

를 만들고 시간복잡도를 위해 deque(popleft사용 위해) 로 원소들을 옮긴 뒤, 숫자 두개를 앞에서 부터 픽해 최소공배수를 

구해나가면서 원소의 갯수가 하나면 모든 수의 최소공배수 이므로 정답이된다.

 

<느낀점>

효율적인 알고리즘을 위해 최대공약수 구하는 알고리즘을 찾아보았는데 문제를 다 풀고 나서야 파이썬 내에도 gcd라는 최대공약수

구하는 함수가 있다는 사실을 알았다.