https://school.programmers.co.kr/learn/courses/30/lessons/135807
나의풀이
import java.util.*;
class Solution {
public int solution(int[] arrayA, int[] arrayB) {
int answer = 0;
int gcdA= arrayA[0];
int gcdB= arrayB[0];
//최대공약수
for(int i=1; i<arrayA.length; i++){
gcdA = gcd(gcdA, arrayA[i]);
gcdB = gcd(gcdB, arrayB[i]);
}
//상대방의 배열 나눌 수 있나?
if(isNotDivisible(arrayB, gcdA)){
if(answer<gcdA){
answer=gcdA;
}
}
if(isNotDivisible(arrayA, gcdB)){
if(answer<gcdB){
answer=gcdB;
}
}
return answer;
}
//유클리드 호제법을 이용한 최대공약수 구하기
public int gcd(int a, int b){
if(a % b == 0){
return b;
}
return gcd(b, a%b);
}
public boolean isNotDivisible(int[] arr, int n){
for(int a:arr){
if(a % n == 0){
return false;
}
}
return true;
}
}
'코테풀이' 카테고리의 다른 글
[프로그래머스] 과제 진행하기 java 풀이(LEVEL2) (0) | 2023.07.04 |
---|---|
[프로그래머스] 리코쳇 로봇 java 풀이 (LEVEL2) (0) | 2023.07.02 |
[프로그래머스] 디펜스 게임 java 풀이(LEVEL2) (0) | 2023.06.15 |
[프로그래머스] 행렬 테두리 회전하기 java 풀이( LEVEL2 ) (0) | 2023.06.14 |
[프로그래머스] 시소 짝꿍 java 풀이(LEVEL2) (0) | 2023.06.14 |