Contents
내가 작성한 코드
내가 작성한 코드
class Solution {
public int solution(int[] arrayA, int[] arrayB) {
// A배열 최대 공약수 구하기
int gcdA = arrayA[0];
for (int i = 1; i < arrayA.length; i++) {
gcdA = gcd(gcdA, arrayA[i]);
}
// B배열 최대 공약수 구하기
int gcdB = arrayB[0];
for (int i = 1; i < arrayB.length; i++) {
gcdB = gcd(gcdB, arrayB[i]);
}
// 한 쪽배열의 최대 공약수가 다른 배열의 원소들을 나눌 수 있는지 확인
int resultA = canDivide(gcdA, arrayB) ? gcdA : 0;
int resultB = canDivide(gcdB, arrayA) ? gcdB : 0;
return Math.max(resultA, resultB);
}
// 최대공약수 구하는 메서드
private int gcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
// 한쪽 배열의 최대공약수가 다른 배열의 원소들을 나누지 않는지 확인하는 메서드
private boolean canDivide(int divisor, int[] arr) {
for (int num : arr) {
if (num % divisor == 0) {
return false;
}
}
return true;
}
}
Share article