[Level 2] 멀쩡한 사각형 + Swift

sanghee·2021년 9월 7일
0

🙈코딩테스트

목록 보기
24/52
post-thumbnail

[Level 2] 멀쩡한 사각형

https://programmers.co.kr/learn/courses/30/lessons/62048

풀이

최대공약수를 구한다. 그리고 그림에서의 패턴 사각형 단위의 가로길이와 세로 길이를 각각 minW, minH라고 한다. 패턴 사각형 단위의 개수는 w / minW, 즉 divisor이다.

func solution(_ w:Int, _ h:Int) -> Int64{
    let divisor = gcd(w, h)
    
    let minW = w / divisor
    let minH = h / divisor
    
    let result = (w * h) - ((minW + minH - 1) * divisor)
    
    return Int64(result)
}

func gcd(_ a: Int, _ b: Int) -> Int {
    let mod: Int = a % b
    return mod == 0 ? min(a, b) : gcd(b, mod)
}
profile
👩‍💻

0개의 댓글