csct3434
[level 2] 숫자 카드 나누기 - 135807 본문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
class Solution {
public int solution(int[] arrayA, int[] arrayB) {
Arrays.sort(arrayA);
Arrays.sort(arrayB);
List<Integer> aDivs = getDivisiors(arrayA[0]);
List<Integer> bDivs = getDivisiors(arrayB[0]);
int aOfArrayA = calcA(aDivs, arrayA, arrayB);
int aOfArrayB = calcA(bDivs, arrayB, arrayA);
return Math.max(aOfArrayA, aOfArrayB);
}
private List<Integer> getDivisiors(int number) {
LinkedList<Integer> divs = new LinkedList<>();
for (int i = number; i >= 1; i--) {
if (number % i == 0) {
divs.add(i);
}
}
return divs;
}
private int calcA(List<Integer> divs, int[] divisibleNumbers, int[] indivisibleNumbers) {
for (Integer div : divs) {
if (checkDivisible(divisibleNumbers, div) && checkIndivisible(indivisibleNumbers, div)) {
return div;
}
}
return 0;
}
private boolean checkDivisible(int[] array, int div) {
for (int number : array) {
if (number % div != 0) {
return false;
}
}
return true;
}
private boolean checkIndivisible(int[] array, int div) {
for (int number : array) {
if (number % div == 0) {
return false;
}
}
return true;
}
}
'프로그래머스' 카테고리의 다른 글
[level 2] 이모티콘 할인행사 - 150368 (0) | 2024.02.29 |
---|---|
[level 2] 마법의 엘리베이터 - 148653 (0) | 2024.02.29 |
[level 2] 우박수열 정적분 - 134239 (0) | 2024.02.29 |
[level 2] 할인 행사 - 131127 (0) | 2024.02.29 |
[level 2] 피로도 - 87946 (0) | 2024.02.29 |