https://uknowblog.tistory.com/117
[백준 1253번] [Kotlin] 좋다
https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 난이도 : 골드 4
uknowblog.tistory.com
난이도 : 브론즈 1
태그 : 수학, 정수론, 유클리드 호제법
설명
가장 오래된 알고리즘인 유클리드 호제법을 사용해 풀 수 있습니다.
해당 알고리즘에 관해서는 백준 2069번 - 최대공약수와 최소공배수 포스팅을 참고해주세요.
https://uknowblog.tistory.com/15
[백준 2069] [Kotlin] [유클리드 호제법] 최대공약수와 최소공배수
https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 난
uknowblog.tistory.com
소스코드
import java.util.StringTokenizer
fun main() = with(System.`in`.bufferedReader()) {
repeat(readLine().toInt()) {
val st = StringTokenizer(readLine())
val (a, b) = arrayOf(st.nextToken().toInt(), st.nextToken().toInt())
LCM(a, b, GCD(a, b))
}
}
fun GCD(n1: Int, n2: Int): Int {
return if (n2 == 0) {
n1
} else {
GCD(n2, n1 % n2)
}
}
fun LCM(n1: Int, n2: Int, gcd: Int) {
println(n1 * n2 / gcd)
}
후기
이전에 포스팅했던 유클리드 호제법 덕에 그리 어렵지 않게 풀 수 있었던 것 같네요.
'코딩테스트 > Kotlin' 카테고리의 다른 글
[백준 4963번] [Kotlin] 섬의 개수 (0) | 2023.02.04 |
---|---|
[백준 5554번] [Kotlin] 심부름 가는 길 (0) | 2023.02.04 |
[백준 3273번] [Kotlin] 두 수의 합 (0) | 2023.02.04 |
[백준 5585번] [Kotlin] 거스름돈 (0) | 2023.02.04 |
[백준 2217번] [Kotlin] 로프 (1) | 2023.02.04 |