728x90
https://programmers.co.kr/learn/courses/30/lessons/12953
a,b 의 최소공배수 = a,b 의 곱 / a,b의 최대공약수
두개의 수까지만 가능하기때문에 두개마다 비교해주면서 각각 최소공배수를 구해준다.
유클리드 호제법으로 최대공약수를 구할 수 있는데
이정도는 알아둘만 한 것 같다. gcd함수에 유클리드 호제법을 통한 최대공약수 구하는 코드를 썼음
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
def gcd(a, b):
while a % b != 0:
a, b = b, a % b
return b
def solution(arr):
answer = 0
while len(arr) > 1:
a = arr.pop(0)
b = arr.pop(0)
lcm = gcd(a, b)
arr.insert(0, (a*b)/lcm)
answer = int(arr[0])
return answer
|
cs |
728x90
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 LV 2 ] 피보나치 수 파이썬/python (0) | 2021.06.07 |
---|---|
[프로그래머스 LV 2 ] 행렬의 곱셈 파이썬/python (0) | 2021.06.07 |
[프로그래머스 LV 2] 영어 끝말잇기 파이썬/python (0) | 2021.06.05 |
[프로그래머스 LV 2] 괄호 회전하기 파이썬/python (0) | 2021.06.05 |
[프로그래머스 LV 2] 배달 파이썬/python (0) | 2021.06.05 |