VesselWheel

정수 제곱근 판별 본문

Coding Test Practice in Swift

정수 제곱근 판별

JasonYang 2023. 11. 21. 11:31

문제

 

풀이

import Foundation

 

func solution(_ n:Int64) -> Int64 {

    var N = Double(n)  // 입력받은 양의 정수 n을 64bit 부동소수점 Double 자료형으로 전환

    // Foundation에서 제공하는 제곱근(sqrt) 함수에서 제곱근에서 정수부분을 버림(floor) 함수를 뺀 값이 0이 아닐 때

    if (sqrt(N) - floor(sqrt(N)) != 0) {  

        // n이 양의 정수 x의 제곱이 아니라면 -1 리턴

        return -1

    } else {

        // Foundation에서 제공하는 제곱(pow)함수 사용하여 제곱근과 제곱 계산, n이 양의 정수 x의 제곱이라면 x+1제곱 리턴

        return Int64(pow(sqrt(N)+1,2))

    }

}

solution(121) // 결과값 144