공대생의 비망록

[프로그래머스][Lv. 1] 최대공약수와 최소공배수 Swift 풀이 본문

Programming Language/Swift

[프로그래머스][Lv. 1] 최대공약수와 최소공배수 Swift 풀이

myungsup1250 2022. 3. 14. 16:10

https://programmers.co.kr/learn/courses/30/lessons/12940

 

코딩테스트 연습 - 최대공약수와 최소공배수

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의

programmers.co.kr

풀이

 

아주 유명한 문제이다.

유클리드 호제법을 적용하여 풀면 된다.

참고 : 위키백과 유클리드 호제법

 

끝!

1
2
3
4
5
6
7
8
9
10
func gcd(_ n: Int, _ m: Int-> Int {
    return m == 0 ? n : gcd(m, n % m)
}
 
func solution(_ n:Int, _ m:Int-> [Int] {
    let a: Int = max(n, m), b: Int = min(n, m)
    let _gcd: Int = gcd(a, b), _lcm: Int = a * b / _gcd
    
    return [_gcd, _lcm]
}
cs
Comments