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


작성한 코드 👇
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int d = sc.nextInt();
int deno = b * d;
int num = (a * d) + (b * c);
int answer = gdc(Math.max(deno, num), Math.min(deno, num));
System.out.println(num / answer + " " + deno / answer);
}
static int gdc(int a, int b) {
if(b == 0) return a;
return gdc(b, a % b);
}
}
느낀 점 및 정리 ✍️
1. 유클리드 호제법 알고리즘으로 풀었다. 최대공약수 최소공배수 구해야 할 때 아주 편하다
💡 유클리드 호제법이란? 아래 링크 참고 !
유클리드 호제법 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 유클리드 호제법(-互除法, Euclidean algorithm) 또는 유클리드 알고리즘은 2개의 자연수 또는 정식(整式)의 최대공약수를 구하는 알고리즘의 하나이다. 호제법이란
ko.wikipedia.org
'Algorithm & SQL > BOJ' 카테고리의 다른 글
| [백준 15831번 / Java] BOJ 15831 : 준표의 조약돌(투 포인터) (0) | 2024.03.08 |
|---|---|
| [백준 15961번 / Java] BOJ 15961 : 회전 초밥(슬라이딩 윈도우, 원형 배열) (0) | 2024.03.07 |
| [백준 5218번 / Java] BOJ 5218 : 알파벳 거리 (0) | 2024.03.01 |
| [백준 5637번 / Java] BOJ 5637 : 가장 긴 단어 (0) | 2024.02.28 |
| [백준 17413번 / Java] BOJ 17413 : 단어 뒤집기 2 (0) | 2024.02.28 |