문제 설명
두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배수는 n 개의 수들의 배수 중 공통이 되는 가장 작은 숫자가 됩니다. n개의 숫자를 담은 배열 arr이 입력되었을 때 이 수들의 최소공배수를 반환하는 함수, solution을 완성해 주세요.
제한 사항
- arr은 길이 1 이상, 15 이하인 배열입니다.
- arr의 원소는 100 이하인 자연수입니다.
풀이
from fractions import gcd # gcd 라이브러리 호출
def solution(arr):
answer = 0
while len(arr) > 1:
n,m = arr.pop(),arr.pop()
arr.append(n*m // gcd(n,m))
return arr.pop()
느낀 점
을 참고하면서 풀면 편하다 . arr의 배열에서 pop 하여 첫 번째 값과 두 번째 값의 최소공배수를 구한 후 그 수에 다시 최소 공배수를 적용하면서 풀어 나가면 문제가 해결된다.
'Algorithm' 카테고리의 다른 글
[BOJ/백준] 2839번 설탕 배탈 (0) | 2020.11.26 |
---|---|
[이코테] 다이나믹 프로그래밍(Dynamic Programming) (0) | 2020.11.24 |
[프로그래머스] JadenCase 문자열 만들기 (0) | 2020.11.23 |
[프로그래머스] 행렬의 곱셈 (0) | 2020.11.23 |
[프로그래머스] 최솟값 만들기 (0) | 2020.11.23 |