프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제풀이
1. 최대 공약수를 이용한 풀이. ( 유클리드 호제법 이용 )
2. 철수가 가진 카드의 최대공약수와 영희가 가진 카드의 최대 공약수를 구한 뒤 , 철수 카드의 최대공약수가 영희 카드를 나눌수 있는지 , 반대로 영희 카드의 최대 공약수가 철수 카드를 나눌수 있는지 판단하여 정답을 도출한다.
나의풀이 ( 코드 )
class Solution {
public int solution(int[] arrayA, int[] arrayB) {
int answer = 0;
int a = arrayA[0];
int b = arrayB[0];
for (int i = 1; i < arrayA.length; i++) {
a = gcd(a, arrayA[i]);
b = gcd(b, arrayB[i]);
}
if (!canDivide(arrayB, a)) {
answer = a;
}
if (!canDivide(arrayA, b)) {
answer = Math.max(answer, b);
}
return answer;
}
static public int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
static boolean canDivide(int[] arr, int gcd) {
for (int num : arr) {
if (num % gcd == 0) {
return true;
}
}
return false;
}
}'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스/JAVA 자바] 줄 서는 방법 (0) | 2024.05.10 |
|---|---|
| [프로그래머스/JAVA 자바] 무인도 여행 (2) | 2024.05.10 |
| [프로그래머스/JAVA 자바] [3차] 방금그곡 (0) | 2024.05.09 |
| [프로그래머스/JAVA 자바] 배달 (2) | 2024.05.07 |
| [프로그래머스/JAVA 자바] 시소 짝꿍 (0) | 2024.05.02 |