728x90
반응형
🔗 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/135807
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반응형
728x90
👩💻 코드
#include <string>
#include <vector>
#include <numeric>
using namespace std;
int findGCD(vector<int> arr) {
int gcdVal = arr[0];
for (int i = 1; i < arr.size(); i++) {
gcdVal = gcd(gcdVal, arr[i]);
}
return gcdVal;
}
bool divideAll(vector<int> arr, int gcdVal){
for(auto num : arr){
if(num % gcdVal == 0){
return false;
}
}
return true;
}
int solution(vector<int> arrayA, vector<int> arrayB) {
int answer = 0;
int gcdA = findGCD(arrayA);
int gcdB = findGCD(arrayB);
if(divideAll(arrayA, gcdB)){
answer = gcdB;
}
if(divideAll(arrayB, gcdA)){
answer = gcdA > answer ? gcdA : answer;
}
return answer;
}
📝 풀이
gcd 함수로 각 숫자 배열들의 최대공약수를 구합니다.
다른 숫자 배열의 모든 수가 최대공약수로 나눠지지 않는지 확인합니다.
모든 조건을 만족하는 가장 큰 수를 answer에 저장합니다.
조건을 만족하는 수가 없다면 answer은 0입니다.
최종적으로 answer을 return 합니다.
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 미로 탈출 (0) | 2024.09.30 |
---|---|
[프로그래머스] 배달 (1) | 2024.09.07 |
[프로그래머스] 메뉴 리뉴얼 (1) | 2024.09.06 |
[프로그래머스] 전력망을 둘로 나누기 (0) | 2024.09.05 |
[프로그래머스] 124 나라의 숫자 (1) | 2024.09.05 |