티스토리 뷰

알고리즘

백준 1735

kOsari 2023. 6. 22. 08:51

1735번: 분수 합 (acmicpc.net)

 

1735번: 분수 합

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

www.acmicpc.net

문제 이해 

해당 문제는 분수의 합을 계산 하는 문제이다.

여기서 알아야 할 점은 유클리드 호제법을 이용해야 한다.

다음을 참조하면 좋다.

 

유클리드 호제법이란? | Lonpeach Tech

 

유클리드 호제법이란? | Lonpeach Tech

개념

tech.lonpeach.com

 

풀이

단순히 분수를 합하고 유클리드 호제법을 적용하면 된다.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());

        st = new StringTokenizer(br.readLine());
        int C = Integer.parseInt(st.nextToken());
        int D = Integer.parseInt(st.nextToken());

        int numerator = A * D + B * C;
        int denominator = B * D;
        
        int mod = gcd(numerator, denominator);
        numerator /= mod;
        denominator /= mod;

        bw.write(numerator + " " + denominator + "\n");
        bw.flush();
        bw.close();
        br.close();
    }

    // 유클리드 호제법
    public static int gcd(int a, int b) {
        // a가 b보다 큰 경우에 대해서 유클리드 호제법 수행.
        if (a <= b) {
            int temp = a;
            a = b;
            b = temp;
        }

        if (b == 0) {
            return a;
        }
        return gcd(b , a % b);
    }

}

'알고리즘' 카테고리의 다른 글

백준 2697번  (0) 2023.06.23
백준 2232  (0) 2023.06.22
백준 2290  (0) 2023.06.21
백준 2089번  (0) 2023.06.21
백준 2075  (0) 2023.06.20
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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 28 29 30 31
글 보관함