MUKER_DEV with iOS

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ˆซ์ž ์นด๋“œ ๋‚˜๋ˆ„๊ธฐ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/programmers

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์ˆซ์ž ์นด๋“œ ๋‚˜๋ˆ„๊ธฐ

MUKER 2023. 6. 29. 10:25
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


์„ฑ๊ณต ํ’€์ด

import Foundation

func solution(_ arrayA:[Int], _ arrayB:[Int]) -> Int {
    
    // ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜
    func gcd(_ a: Int, _ b: Int) -> Int {
        if a%b == 0 { return b }
        return gcd(b,a%b)
    }
    
    // ๊ฐ ๋ฐฐ์—ด ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ
    var aN = arrayA[0], bN = arrayB[0]
    for i in 0..<arrayA.count {
        aN = gcd(aN, arrayA[i])
        bN = gcd(bN, arrayB[i])
    }
    
    // ๋‘ ๋ฐฐ์—ด์„ ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋น„๊ต
    var result = 0
    if bN != 1 && arrayA.filter { $0 % bN == 0 }.count == 0 {
        result = max(result,bN)
    }
    if aN != 1 && arrayB.filter { $0 % aN == 0 }.count == 0 {
        result = max(result,aN)
    }
    
    return result
}