나의 기록, 현진록

[Swift] 프로그래머스 Summer/Winter Coding(2019) > 멀쩡한 사각형 본문

Programming/Algorithm & Data Structure

[Swift] 프로그래머스 Summer/Winter Coding(2019) > 멀쩡한 사각형

guswlsdk 2022. 5. 18. 15:21
반응형

 

 

코딩테스트 연습 - 멀쩡한 사각형

가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을

programmers.co.kr

문제풀이

빗선을 지나는 사각형의 갯수를 구하는 공식을 사용하는 문제다. 

빗선을 지나는 사각형의 갯수 = 가로 + 세로 - 최대공약수(가로, 세로)  

 

정답은 (가로 * 세로) - (가로 + 세로 - 최대공약수)로 구할 수 있다.

 

코드

 

 

import Foundation

func gcd(up: Int, down: Int) -> Int{
    var up = up
    var down = down
    while down != 0{
        let r = up % down
        up = down
        down = r
    }
    return up
}
func solution(_ w:Int, _ h:Int) -> Int64{
    return Int64((w*h)-(w+h-gcd(up: max(w,h), down: min(w, h))))
}
반응형