-
[Swift] 알고리즘 공부 - N개의 최소공배수알고리즘 공부/프로그래머스 2024. 3. 10. 20:02반응형
문제 설명
두 수의 최소공배수(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 설명
1. 최대 공배수와 최소공배수를 구하는 방법을 알아야한다.
func solution(_ arr: [Int]) -> Int { var result = arr[0] // 초기값은 첫 번째 숫자로 설정 for i in 1..<arr.count { // 현재 결과값과 다음 숫자들의 최소공배수를 구해 새로운 결과값으로 갱신 result = lcm(result, arr[i]) } return result } // 최대공약수 func gcd(_ a: Int, _ b: Int) -> Int { if b == 0 { return a } return gcd(b, a % b) } // 최소공배수 func lcm(_ a: Int, _ b: Int) -> Int { return a * b / gcd(a, b) }
반응형'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
[Swift] 알고리즘 공부 - 점프와 순간이동 (0) 2024.03.10 [Swift] 알고리즘 공부 - 영어 끝말잇기 (0) 2024.03.10 [Swift] 알고리즘 공부 - 카펫 (0) 2024.02.13 [Swift] 알고리즘 공부 - 짝지어 제거하기 (1) 2024.02.06 [Swift] 알고리즘 공부 - 피보나치 수 (1) 2024.02.05