728x90
https://www.acmicpc.net/problem/1735
📝 나의 풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a1 = scanner.nextInt();
int b1 = scanner.nextInt();
int a2 = scanner.nextInt();
int b2 = scanner.nextInt();
int a3 = a1*b2 + a2*b1;
int b3 = b1*b2;
// 분자, 분모의 최소 공약수를 구하여 분자, 분모를 나누어 기약분수를 만들어준다.
int gcd = getGCD(a3,b3);
System.out.println(a3/gcd +" "+b3/gcd);
}
//유클리드 호제법 최소 공약수를 구한다.
public static int getGCD(int n, int m) {
if(n%m==0) {
return m;
} else {
return getGCD(m, n%m);
}
}
}
- 기약분수 만드는걸 생각도 못하고있어서 한참 삽질했다..ㅠ (문제 잘 읽자...)
- 분수를 더해주고, 유클리드 호제법을 통해 분자, 분모의 최소공약수를 구해 나누어주면 기약분수가 된다.
728x90
'코딩테스트 > [JAVA] 백준' 카테고리의 다른 글
[백준 | JAVA | 11659번] 구간합 구하기 (0) | 2023.11.05 |
---|---|
[백준 | JAVA | 1546번] 평균 (0) | 2023.11.04 |
[백준 | 11720번] 숫자의 합 (0) | 2023.10.21 |
[ 백준 | JAVA | 24262번 ] 색종이 (0) | 2023.10.16 |
[백준 | 24262번] 알고리즘 수업 - 알고리즘의 수행 시간 1 (0) | 2023.08.16 |