목록유클리드 호제법 (2)
100세까지 코딩

문제 설명 풀기 전 생각 저번에 풀었던 기약분수 만드는 방법을 활용, 최대공약수(gcd)를 구하기 5로 나눠 떨어질 때까지 나누기, 2로 나눠 떨어질 때까지 나누기 나누고 난 값이 1만 남으면 소인수는 2,5만 존재 1 이외의 값이 남아있으면 소인수는 2,5 외에도 있음 class Solution { public int solution(int a, int b) { int answer = 0; b = b / gcd(a, b); //분모를 최대공약수로 나눠 기약분수형태의 분모로 바꿔줌 while ( b % 5 == 0) { // 5로 나눈 나머지가 0이면 5의 배수 b /= 5; // 5로 나눈 수를 b에 다시 대입 } while (b % 2 == 0) { // 2로 나눈 나머지가 0이면 2의 배수 b /=..

문제 설명 풀기 전 생각 특정 조건 나누지 말고 일반 분수의 합처럼 분모끼리 곱하고 (분모 1 * 분자 2 + 분모 2 * 분자 1) 더하기 1학년때 배운 유클리드 호제법 알고리즘을 써서 최대공약수 구하기 (분자 / 분모)를 기약 분수로 나타내기 위해 최대공약수로 나누기 class Solution { public int[] solution(int numer1, int denom1, int numer2, int denom2) { int[] answer = new int[2]; int answerdenom = denom1 * denom2; // 분모끼리 곱하기 (d1 * d2) int answernumer = denom1 * numer2 + denom2 * numer1; // 분자끼리 더하기 (d1 * n2..