반응형
🔺 문제
5347번: LCM
첫째 줄에 테스트 케이스의 개수 n이 주어진다. 다음 n개 줄에는 a와 b가 주어진다. a와 b사이에는 공백이 하나 이상 있다. 두 수는 백만보다 작거나 같은 자연수이다.
www.acmicpc.net
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
long n = Long.parseLong(br.readLine());
while(n --> 0) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
long a = Long.parseLong(st.nextToken());
long b = Long.parseLong(st.nextToken());
long d = a * b / gcd(a,b);
sb.append(d).append("\n");
}
System.out.print(sb);
}
private static long gcd(long x, long y) {
if(y == 0) return x;
return gcd(y, x % y);
}
}
|
cs |
✅ 해결 아이디어
✔ 최소공배수 (LCM) = a * b / 최대공약수(GCD)
- 최대공약수 → 유클리드 호제법 사용해 계산
💥 유의사항
• long형으로 받아야함 ⇨ ∵ 백만 * 백만 → int형 범위 넘음
💬 느낀 점
수 범위가 넘어가는 걸 잘 생각하자!
유클리드 호제법 오랜만에 생각하려니까 까먹음..ㅠ
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 2776번: 암기왕 (0) | 2023.06.12 |
---|---|
[백준/JAVA] 11003번: 최솟값 찾기 (0) | 2023.06.11 |
[백준/JAVA] 2502번: 떡 먹는 호랑이 (3) | 2023.06.09 |
[백준/JAVA] 2154번: 수 이어 쓰기 3 (0) | 2023.06.09 |
[백준/JAVA] 3062번: 수 뒤집기 (0) | 2023.06.09 |