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))))
}
반응형