728x90
SMALL
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

from math import gcd
from functools import reduce
def solution(arrayA, arrayB):
answer = 0
mods = []
gcdA = reduce(gcd, arrayA)
gcdB = reduce(gcd, arrayB)
def check(gcd_value, array):
for num in array:
if num % gcd_value == 0:
return False
return True
if check(gcdA, arrayB):
answer = max(answer, gcdA)
if check(gcdB, arrayA):
answer = max(answer, gcdB)
return answer
- 유클리드 호제법으로도 최대 공약수를 구할 수 있지만 math 모듈로 gcd를 더 간단히 구해보았습니다.
- reduce() 함수를 이용해 배열의 모든 요소에 대해 반복적으로 주어진 함수(math.gcd)를 적용하여 최대공약수를 계산하였습니다.
728x90
LIST
'알고리즘 문제 풀이 > 프로그래머스 (Level 2)' 카테고리의 다른 글
| 📗 방금그곡 (8) | 2024.08.28 |
|---|---|
| 📗 배달 (2) | 2024.08.12 |
| 📗 메뉴 리뉴얼 (1) | 2024.07.26 |
| 📗 마법의 엘리베이터 (1) | 2024.07.23 |
| 📗 124 나라의 숫자 (0) | 2024.07.17 |