Archive/Questions
[programmers/Swift] 정수 제곱근 판별
Marco
2022. 5. 2. 17:48
728x90
programmers.co.kr - 코딩테스트연습 - Lv.1 - 연습문제 - 정수 제곱근 판별
코딩테스트 연습 - 정수 제곱근 판별
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함
programmers.co.kr
Constraints :
- n은 1이상, 50000000000000 이하인 양의 정수입니다.
//
// Created by Yongwoo Marco on 2022/04/26.
// Copyright © 2022 Yongwoo Marco Kim. All rights reserved.
//
func solution(_ n:Int64) -> Int64 {
let num = Int64(sqrt(Double(n)))
return num * num == n ? (num + 1) * (num + 1) : -1
}
print(solution(121)) // 144
print(solution(3)) // -1
How I tried this :
처음 생각한 아이디어가 형변환도 많고 생각치 못한 에러도 있어서 당황했지만
제곱근의 정수부만 제곱해서 n과 같다면 제곱근이 정수라는 의미로 풀었다.
What I got is :
func solution(_ n:Int64) -> Int64 {
let sqrt = sqrt(Double(n))
return sqrt == Double(Int(sqrt)) ? Int64(pow(sqrt + 1, 2)) : -1
}
// Swift Error: Variable used within its own initial value
최초 풀이에서 변수명을 키워드와 동일하게 했다가 에러가 났었고
형변환이 너무 많아서 현재 코드로 변형했다.
문제에 관한 모든 저작권 : https://programmers.co.kr/
728x90