Algorithm/프로그래머스

[프로그래머스 스위프트] 정수 제곱근 판별

devKen 2022. 8. 26. 19:34

아이디어

 

제곱근인지 판단한다. 이 문제를 해결하기 위하여 for문에서 i를 증가시켜가면서 제곱근이 가능한 지점인지 측정하고 만약 i의 제곱이 n보다 크다면 바로 -1을 리턴하게 됐다.

알아뒀어야 했던 점은 스위프트에는 이미 sqrt함수가 구현되어 있어 이렇게 풀 필요가 없었던 것이었다. 이 함수의 존재로 제곱근을 바로 구하고 이 수가 n과 일치하는지를 봤으면 더 쉽게 풀수 있었다.

 

해답

func solution(_ n:Int64) -> Int64 {
    var i = 1
    while true {
        if i * i == n {
            return Int64((i + 1) * (i + 1))
        } else if i * i > n {
            return -1
        }
        i += 1
    }
}