[programmers][X] 숫자 카드 나누기
in Algorithm on Algorithm
https://school.programmers.co.kr/learn/courses/30/lessons/135807
import java.util.*;
class Solution {
public int solution(int[] arrayA, int[] arrayB) {
int gcdA = arrayA[0];
for(int i = 1 ; i < arrayA.length ; i++ ){
gcdA = gcd(gcdA, arrayA[i]);
}
int gcdB = arrayB[0];
for(int i = 1 ; i < arrayB.length ; i++ ){
gcdB = gcd(gcdB, arrayB[i]);
}
if(gcdA == 1 && gcdB == 1) return 0;
if(isDivide(arrayB, gcdA)) gcdA = 0;
if(isDivide(arrayA, gcdB)) gcdB = 0;
return Math.max(gcdA,gcdB);
}
boolean isDivide(int[] array, int gcdVal){
for(int a : array) if(a%gcdVal == 0) return true;
return false;
}
int gcd(int a, int b){
if(b == 0) return a;
return gcd(b, a%b);
}
}