코린이의 소소한 공부노트

[백준 온라인 저지] 1735. 분수 합 본문

코딩테스트 풀이/JAVA

[백준 온라인 저지] 1735. 분수 합

무지맘 2023. 4. 19. 23:24

1. 입력

- 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다.

 

2. 출력

- 첫째 줄에 구하고자 하는 기약분수의 분자와 분모를 뜻하는 두 개의 자연수를 빈 칸을 사이에 두고 순서대로 출력한다.

 

3. 코드

import java.util.*;
import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer token = new StringTokenizer(br.readLine());
        int[] num1 = {Integer.valueOf(token.nextToken()), Integer.valueOf(token.nextToken())};
        token = new StringTokenizer(br.readLine());
        int[] num2 = {Integer.valueOf(token.nextToken()), Integer.valueOf(token.nextToken())};
        int lcd = num1[1] / findGCD(num1[1], num2[1]) * num2[1];
        int num = lcd/num1[1]*num1[0]+lcd/num2[1]*num2[0];
	    int gcd = findGCD(Math.max(lcd, num), Math.min(lcd, num));
	    System.out.print(num/gcd + " " + lcd/gcd);
    }
    static int findGCD(int a, int b){
        if(b==0) return a;
        return findGCD(b, a%b);
    }
}