[JAVA 문제 풀이] 371. 숫자 카드 나누기

프로그래머스 (135807)
Stupefyee's avatar
Jul 09, 2025
[JAVA 문제 풀이] 371. 숫자 카드 나누기
notion image
 

내가 작성한 코드

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

stupefyee