Notice
														
												
											
												
												
													Recent Posts
													
											
												
												
													Recent Comments
													
											
												
												
													Link
													
											
									| 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 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 | 
													Tags
													
											
												
												- Stack
- Lv1
- 알고리즘
- 스프링부트 도커 배포
- StringTokenizer
- 프로그래머스 자바
- index of
- 오름차순 정렬
- lv2
- java
- lv0
- 프로그래머스 문자열 정렬
- 스택
- Queue
- 스프링부트 도커
- 문자열
- 백준
- 자바
- 백준 N과 M 자바
- 스프링부트 도커로 배포
- 삼각형의 완성조건
- 이진수 변환
- 프로그래머스
- 클라이언트
- SWEA
- 프로그래머스 풀이
- 버퍼
- 큐
- Programmers
- COS Pro
													Archives
													
											
												
												- Today
- Total
mun dev
[백준] 1735 분수합 자바(Java) 본문
문제설명
분수 A/B는 분자가 A, 분모가 B인 분수를 의미한다. A와 B는 모두 자연수라고 하자.
두 분수의 합 또한 분수로 표현할 수 있다. 두 분수가 주어졌을 때, 그 합을 기약분수의 형태로 구하는 프로그램을 작성하시오. 기약분수란 더 이상 약분되지 않는 분수를 의미한다.
입력
첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다.
출력
첫째 줄에 구하고자 하는 기약분수의 분자와 분모를 뜻하는 두 개의 자연수를 빈 칸을 사이에 두고 순서대로 출력한다.
통과한 코드 ✅
import java.util.*;
import java.io.*;
public class Main {
    public static void main(String[] args) throws IOException {
        Scanner sc=new Scanner(System.in);
        int arr[][]=new int[2][2];
        int num,den;
        for(int i=0; i<2; i++){
            for(int j=0; j<2; j++){
                arr[i][j]=sc.nextInt();
            }
        }
        if(arr[0][0]==arr[1][0]){
            num=arr[0][0]+arr[1][0];
            den=arr[0][0];
        }else{
            arr[0][0]=arr[0][0]*arr[1][1];
            arr[1][0]=arr[1][0]*arr[0][1];
            num=arr[0][0]+arr[1][0];
            den=arr[0][1]*arr[1][1];
        }
        int mod=gcd(num,den);
        num/=mod;
        den/=mod;
        System.out.println(num+" "+den);
    }
    // 유클리드 호제법
    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);
    }
}
'알고리즘 > 백준' 카테고리의 다른 글
| [백준] 11866 요세푸스 문제0 자바(Java) (0) | 2023.06.23 | 
|---|---|
| [백준] 18870 좌표압축 자바(Java) (0) | 2023.06.21 | 
| [백준] 11286 절댓값 힙 (0) | 2023.06.13 | 
| [백준] 1927 최소 힙 자바(Java) (0) | 2023.06.05 | 
| [백준] 11279 최대 힙 자바(Java) (0) | 2023.06.05 |