[프로그래머스] 정수 제곱근 판별(Kotlin)

0

프로그래머스

목록 보기
71/128
post-thumbnail
post-custom-banner

[프로그래머스] 정수 제곱근 판별(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())
        
        //n_sqrt가 정수(소수점 아래 수X)인지 확인
        if(ceil(n_sqrt).toLong() == n_sqrt.toLong()){
            //n = n_sqrt * n_sqrt
            return ((n_sqrt+1)*(n_sqrt+1)).toLong()
        }
        return -1
    }
}

참고자료

📌Kotlin 제곱, 제곱근

  • import kotlin.math.* 필요
  • 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 올림, 반올림, 내림

  • import kotlin.math.* 필요
  • round(x) = x 반올림 (인자 x:Double, 반환값: Double)
  • ceil(x) = x 올림 (인자 x:Double, 반환값: Double)
  • floor(x) = x 내림 (인자 x:Double, 반환값: Double)
profile
Be able to be vulnerable, in search of truth
post-custom-banner

0개의 댓글