프로그래머스_멀쩡한 사각형_최대공약수

hankyulee·2021년 11월 3일
0

Swift coding test 준비

목록 보기
35/57

어떻게 최대공약수를 떠올린지는 모르겠지만 사람들은 이렇게 풀었다.

func gcd(_ a:Int, _ b:Int) -> Int64{
    if a == 0 { return Int64(b) }
    return gcd(b%a,a)
}

나는 아래처럼 규칙을 찾으려했으나 , 39점을 맞았다. 한시간 고민하고 포기하였다. 최대공약수나 외워야겠다.

import Foundation

func solution(_ w:Int, _ h:Int) -> Int64{
    var answer:Int64 = 0
    if w == 1 || h == 1{return Int64(0)}
    var tmpW = min(w,h)
    var tmpH = max(w,h)
    
    print(tmpW,tmpH)
    var total = tmpW * tmpH
    var extract = 0
    // if tmpW % 2 == 0 {
    //     extract = (tmpH/tmpW+1)*tmpW
    //                  return Int64(total) - Int64(extract)
    // }
    if tmpH % tmpW == 0 {
        extract = tmpH / tmpW * tmpH
    }
    else {
        var moks = tmpH / tmpW
        var namuzi = tmpH % tmpW
        extract = (moks+1) * tmpH + (namuzi-1)
    }
    answer = Int64(total) - Int64(extract)
    

    return answer
}

0개의 댓글