[프로그래머스] (LV2) N개의 최소공배수

[프로그래머스] (LV2) N개의 최소공배수

Python3


문제 설명

두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.

제한 사항

  • arr은 길이 1이상, 15이하인 배열입니다.
  • arr의 원소는 100 이하인 자연수입니다.

입출력 예

arr result
[2,6,8,14] 168
[1,2,3] 6



풀이


Python

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def solution(arr):
arr.sort()
max_v = arr[-1]
count = 1
while count:
satis_value_count = 0
for i in reversed(range(len(arr)-1)):
if (max_v*count) % arr[i] == 0:
satis_value_count+= 1
else:
break

if satis_value_count == len(arr)-1:
break
else:
count+=1
return max_v * count



설명


풀이 TIPS

  • 최소 공배수는 반드시 배열 중 가장 큰 수의 거듭제곱 중 하나다.
  • 이를 이용하여 가장 큰 수의 거듭제곱 값을 늘려가며 조건에 만족하는 값을 구한다.

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges


[프로그래머스] (LV2) N개의 최소공배수

https://sklubmk.github.io/2021/09/26/91475a0d6b1b/

Author

Jinki Kim

Posted on

2021-09-26

Updated on

2021-09-26

Licensed under

댓글