https://programmers.co.kr/learn/courses/30/lessons/12940?language=kotlin
초기코드
class Solution { fun solution(n: Int, m: Int): IntArray { var answer = intArrayOf() return answer } }
우선 최대공약수는 gcd 로 Greatest Common Divisor,
최소공배수는 lcm 으로 Least Common Multiple 의 각각의 약자이다.
n과 m의 최소공배수는 (n*m)/최대공약수 -> lcm = (n*m)/gcd 이다.
따라서 {gcd,(n*m)/gcd}이다. 그러므로 최대공약수만 구하면 최소공배수도 구할 수 있다.
내가 작성한 코드
class Solution {
fun solution(n: Int, m: Int): IntArray {
return intArrayOf(gcd(n,m), ((n*m)/gcd(n,m)))
}
}
-> 결론은 틀림... 그래서 찾아보니 여기에 더 추가 되어야한다...
class Solution {
fun solution(n: Int, m: Int): IntArray {
return intArrayOf(gcd(n,m), ((n*m)/gcd(n,m)))
}
fun gcd(n :Int, m :Int) : Int {
if (m > n) {
return if (n == 0) m else gcd(n, m%n)
} else {
return if (m == 0) n else gcd(n%m, m)
}
}
}
->완성본...if를 좀 더 활용하자...
'알고리즘' 카테고리의 다른 글
프로그래머스 - 짝수의 합 (0) | 2023.11.29 |
---|---|
알고리즘 문제풀이 - 각도기 (0) | 2023.11.28 |
알고리즘 문제풀이 1~7 (1) | 2023.11.27 |
프로그래머스 - 이상한 문자 만들기 (0) | 2023.11.22 |
프로그래머스 3진법 뒤집기 (0) | 2023.11.21 |