임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.
우선 제곱인지 아닌지 판단을 해야하지 제곱근을 구하는 메서드를 검색하였다.
Math.sqrt()라는 함수를 알게되었다.
조건문을 사용하여 리턴해야겠다라고 생각했다.
이때 제곱근인지 아닌지는 어떻게 판단할까?
이는 제곱근을 구했을때 정수이면 제곱근이 맞고
정수가 아닐시 제곱근이 아니라고 판단했다.
function solution(n) {
if(parseInt(Math.sqrt(n)) === Math.sqrt(n) ){ //parseInt(Math.sqrt(n)) - Math.sqrt(n) ===0 도 가능
return (Math.sqrt(n)+1) ** 2
} else return -1
}
우선 if문을 사용하여 n의 제곱근의 정수 === n의 제곱근 이라면 제곱이므로 제곱근+1 의 제곱을 하였다.
아닐시-1을 리턴한다.
다른 답들을 보니 정수인지 안닌지 판별해 주는 함수가 있었다. 그거슨 바로 isinteger...
이 함수를 사용하면 두값을 비교할 필요가 없다.