import Foundation
func gcd(_ a: Int, _ b: Int) -> Int{
var tmp: Int, n: Int, a = a, b = b
if(a < b){
tmp = a
a = b
b = tmp
}
while(b != 0){
n = a % b
a = b
b = n
}
return a
}
func solution(_ arrayA:[Int], _ arrayB:[Int]) -> Int {
var gcdA = arrayA.first!
var gcdB = arrayB.first!
zip(arrayA, arrayB).forEach { a,b in
gcdA = gcd(gcdA, a)
gcdB = gcd(gcdB, b)
}
for num in arrayA {
if num % gcdB == 0 {
gcdB = 0
break
}
}
for num in arrayB {
if num % gcdA == 0 {
gcdA = 0
break
}
}
return max(gcdA, gcdB)
}
'프로그래머스 > Lv.2' 카테고리의 다른 글
[Swift] 시소 짝궁 (0) | 2023.06.23 |
---|---|
[Swift] 하노이의 탑 (0) | 2023.06.20 |
[Swift] 멀쩡한 사각형 (0) | 2023.06.17 |
[Swift] 호텔 대실 (1) | 2023.06.17 |
[Swift] 거리두기 확인하기 (0) | 2023.06.17 |