[프로그래머스] 정수 제곱근 판별(Kotlin)
풀이1
class Solution {
fun solution(n: Long): Long {
var answer: Long = 0
for(x:Long in 1..n){
if(x*x == n) return (x+1)*(x+1)
}
return -1
}
}
풀이2
import kotlin.math.*
class Solution {
fun solution(n: Long): Long {
var answer: Long = 0
val n_sqrt:Double = sqrt(n.toDouble())
if(ceil(n_sqrt).toLong() == n_sqrt.toLong()){
return ((n_sqrt+1)*(n_sqrt+1)).toLong()
}
return -1
}
}
참고자료
📌Kotlin 제곱, 제곱근
- sqrt(x) = x의 제곱근 (인자 x: Double, 반환값: Double)
- x.pow(n) = x의 n제곱 (x:Double, 인자 n: Int, 반환값: Double)
- hypot(x, y) = (x^2 + y^2)의 제곱근 (인자 x: Double, 인자 y: Double)
- 2차원 좌표상 두 점 사이의 거리 구하기
- 피라고라스의 정리를 응용하여 직각삼각형 판별하기
📌Kotlin 올림, 반올림, 내림
- round(x) = x 반올림 (인자 x:Double, 반환값: Double)
- ceil(x) = x 올림 (인자 x:Double, 반환값: Double)
- floor(x) = x 내림 (인자 x:Double, 반환값: Double)