코딩테스트/[JAVA] 백준

[백준 | JAVA | 1735번] 분수 합

냠냠쿠 2023. 11. 3. 09:04
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