새소식

인기 검색어

프로그래머스/Lv.2

[Swift] 숫자 카드 나누기

  • -
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
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.