Notice
Recent Posts
Recent Comments
Link
라일락 꽃이 피는 날
[Level 2] N개의 최소공배수 본문
728x90
[문제]
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.
[제한사항]
- arr은 길이 1이상, 15이하인 배열입니다.
- arr의 원소는 100 이하인 자연수입니다.
[코드]
def solution(arr):
lcm = arr[0]
for i in range(len(arr)):
div = []
for j in range(1, lcm+1):
if lcm % j == 0:
div.append(j)
for j in range(1, arr[i]+1):
if arr[i] % j == 0:
if j in div:
com_div = j
lcm = int(lcm * arr[i] / com_div)
return lcm
[풀이 코드] - gcd 함수 사용
from fractions import gcd
def nlcm(num):
answer = num[0]
for n in num:
answer = n * answer / gcd(n, answer)
return answer728x90
'코딩테스트 > Python' 카테고리의 다른 글
| [Level 2] 행렬의 곱셈 (0) | 2021.10.07 |
|---|---|
| [Level 2] JadenCase 문자열 만들기 (0) | 2021.10.07 |
| [2021 Dev-Matching] 로또의 최고 순위와 최저 순위 (0) | 2021.10.06 |
| [2021 KAKAO BLIND RECRUITMENT] 신규 아이디 추천 (0) | 2021.10.06 |
| [2019 카카오 개발자 겨울 인턴십] 크레인 인형뽑기 게임 (0) | 2021.10.04 |