Lv1. 정수 제곱근 판별

Hello·2022년 7월 23일
0

코딩테스트 연습 > 정수 제곱근 판별

1. 풀이 설명

  • python: n ** 0.5의 type 은 float 이다. int로 형 변환을 해도 값이 동일하다면, n은 어떤 양의 정수 x의 제곱이다.

  • kotlin: n의 제곱근을 구하고, 제곱근을 제곱했을 때 동일한 값이면 n은 어떤 양의 정수 x의 제곱이다.

2. 나의 풀이

python

def solution(n):
    sqrt = n ** 0.5
    if int(sqrt) == sqrt:
        return int(sqrt + 1) ** 2
    else:
        return -1

kotlin

fun solution(n: Long): Long {
	val sqrt = kotlin.math.sqrt(n.toDouble()).toLong()
    return if(sqrt * sqrt == n) {
    	(sqrt + 1) * (sqrt + 1)
    } else {
    	-1
    }
}

3. 배운점

  • kotlin 에서 제곱근과 제곱을 구하기. (n은 Float or Double, i는 Int)
import kotlin.math.*
sqrt(n) // 제곱근

n.pow(i) // 제곱
profile
안녕하세요 :)

0개의 댓글