-
[Swift] 알고리즘 공부 - 정수 제곱근 판별알고리즘 공부/프로그래머스 2023. 3. 26. 21:20
문제 설명
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.제한사항
- n은 1이상, 50000000000000 이하인 양의 정수입니다.
입출력 예
n return121 144 3 -1 설명
1. 1부터 n까지의 수를 각각 제곱해본다
2. 제곱한 값(i*i)이 n보다 크면 제곱근이 없는것이기 때문에 return -1
3. 제곱한 값(i*i)이 n이라면 i+1을 제곱해주고 return
func solution(_ n:Int64) -> Int64 { var i = 1 if n == 1 { return 4 } while i < n { if i*i != n { i += 1 } else { return Int64((i+1) * (i+1)) } } return -1 }
'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
[Swift] 알고리즘 공부 - 문자열 내 p와 y의 개수 (0) 2023.03.27 [Swift] 알고리즘 공부 - 나머지가 1이 되는 수 찾기 (0) 2023.03.27 [Swift] 알고리즘 공부 - x만큼 간격이 있는 n개의 숫자 (0) 2023.03.26 [Swift] 알고리즘 공부 - 평균 구하기 (0) 2023.03.26 [Swift] 알고리즘 공부 - 약수의 합 (0) 2023.03.26