[programmers][X] 숫자 카드 나누기

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);
    }
}


© 2023 Lee. All rights reserved.