가수면

[Javascript] 정수 제곱근 판별 본문

CS/코딩 테스트

[Javascript] 정수 제곱근 판별

니비앙 2022. 11. 23. 00:11

문제 설명

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

제한 사항
  • n은 1이상, 50000000000000 이하인 양의 정수입니다.
입출력 예
121 144
3 -1

 


내가 쓴 코드

function solution(n) {
    let num = Math.floor(Math.sqrt(n))
    
    return num * num === n ? (num + 1) * (num + 1) : -1
}

Math.sqrt()만 사용했을 때 정답률이 83%로 틀렸다고 나왔다.

찾아보니 Math.sqrt()를 쓰게되면 소수점 8자리까지만 나오게 되는데 그렇기에 온전히 비교할 수 없다는 이유 같았다.

Math.floor()를 사용해 소수점을 버려주니 해결됨.

Comments