코테/백준

[백준/JAVA] 1735번: 분수 합

imname1am 2023. 3. 27. 19:02
반응형

🔺 문제

 

1735번: 분수 합

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

www.acmicpc.net

 

🔺 코드

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));
        StringTokenizer st = new StringTokenizer(br.readLine()," ");
		
        int ja1 = Integer.parseInt(st.nextToken());
        int mo1 = Integer.parseInt(st.nextToken());
		
        st = new StringTokenizer(br.readLine());
        int ja2 = Integer.parseInt(st.nextToken());
        int mo2 = Integer.parseInt(st.nextToken()); 
		
		
        int bunja = ja1 * mo2 + ja2 * mo1;
        int bunmo = mo1 * mo2;
		
        // 최대공약수 구하기
        int gcd = getGCD(bunja, bunmo);
        System.out.println(bunja/gcd + " " + bunmo/gcd);
    }
    
    public static int getGCD(int a, int b) {
        if(b == 0) return a;
        else       return getGCD(b, a % b);
    }
}
✅ 해결 아이디어
- 기약분수/최대공약수 → 유클리드 호제법

반응형