문제) N개의 최소공배수
코딩테스트 연습 - N개의 최소공배수
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배
programmers.co.kr
- 내 풀이
- 원소의 모든 값이 서로소일 경우를 고려해야 함
def solution(arr):
arr.sort(reverse=True)
answer=arr[0]
for a in arr:
if a==arr[0]:
continue
for i in range(1,a+1):
if (answer*i)%a==0:
answer=answer*i
break
return answer
arr1=[3, 4, 9, 16]
arr2=[3, 7, 11, 17, 19, 23, 29, 31, 37 #모든원소가 서로소일 경우
print(solution(arr1))
print(solution(arr2))
#결과
144
57082601037
- 다른 사람 풀이
- 유클리드 호제법 사용해서 하나씩 비교
[Python] 파이썬- 최대공약수, 최소공배수
최대공약수/ 최소공배수 최대공약수 GCD(Greatest Common Divisor) : 두 수의 공통 약수 중 가장 큰 수 최소공배수 LCM(Largest Common Multiple) : 각각의 배수 중 공통이고, 가장 작은 수 for문 활용한 최대공약..
yygs321.tistory.com
def solution(arr):
answer = arr[0]
for i in range(len(arr)-1) :
answer = lcm(answer,arr[i+1])
return answer
def gcd(a,b) :
if (b == 0):
return a
else :
return gcd(b,a%b)
def lcm(a,b) :
return a*b/gcd(a,b)
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] [Level 2] [탐욕법(Greedy)] 구명보트 (0) | 2022.04.17 |
|---|---|
| [프로그래머스] [Level 2] JadenCase 문자열 만들기 (0) | 2022.04.13 |
| [프로그래머스] [Level 2] [BFS] [2022 KAKAO BLIND RECRUITMENT] 양궁대회 (0) | 2022.04.08 |
| [프로그래머스] [Level 1] [2021 Dev-Matching: 웹 백엔드 개발자(상반기)] 로또의 최고 순위와 최저 순위 (0) | 2022.03.27 |
| [프로그래머스] [Level 1] [2021 KAKAO BLIND RECRUITMENT] 신규 아이디 추천 (0) | 2022.03.27 |