*문제 출처는 프로그래머스에 있습니다.
문제 제목: 숫자 카드 나누기 (2단계)
문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/135807?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명

나의 풀이
def gcd_euclidean(a, b):
while b != 0:
a, b = b, a % b
return a
def gcd_list(numbers):
if not numbers:
return 0 # 빈 리스트인 경우 예외 처리
result = numbers[0]
for num in numbers[1:]:
result = gcd_euclidean(result, num)
return result # 최대공약수가 1이면 None 반환
def solution(arrayA, arrayB):
a_check = True
b_check = True
a = gcd_list(arrayA)
b = gcd_list(arrayB)
for i in arrayB: # arrayB에 나눠지는게 있음
if i % a == 0:
a_check = False
break
for i in arrayA:
if i % b == 0:
b_check = False
break
if a_check and b_check:
return max(a, b)
elif not a_check and b_check:
return b
elif not b_check and a_check:
return a
else:
return 0

※ 알아야 할 것
유클리드 호제법을 사용하면 간단하게 해결하실 수 있습니다!
'Coding Test > 프로그래머스-Python' 카테고리의 다른 글
| Programmers / 미로 탈출 / Python (0) | 2025.04.03 |
|---|---|
| Programmers / N-Queen / Python (0) | 2025.03.31 |
| Programmers / 전력망을 둘로 나누기 / Python (0) | 2025.03.26 |
| Programmers / 서버 증설 횟수 / Python (0) | 2025.03.14 |
| Programmers / 스티커 모으기(2) / Python (1) | 2025.03.13 |