🔐 문제
- 임의의 자연수
n
이 주어짐
n
이 어떤 양의 정수 x
의 제곱인지 판별해야 함
n
이 어떤 양의 정수 x
의 제곱이라면 x+1
의 제곱을 return, 그렇지 않다면 -1을 return 하는 함수를 완성시켜라
🔑 풀이
function solution(n) {
let x = Math.sqrt(n);
if ( Number.isInteger(x) == true ) {
return Math.pow(x+1 , 2);
} else {
return -1;
}
}
n
이 x
의 제곱인지 판별하기 위해서는, n
의 제곱근을 구해야한다 생각
- 변수
x
를 Math.sqrt()
사용해 n의 제곱근으로 먼저 선언함
x
가 정수라면, x
는 n
의 제곱근이기 때문에 Number.isInteger()
로 정수인지 판별
x
가 정수가 맞다면 Math.pow()
를 사용해 x+1
을 제곱한 값을 return해주고, 아니면 -1을 return하는 조건문 완성
💡 배운점
1. Math.pow(base, exponent)
- base는 밑, exponent는 지수
- base^exponent를 반환
- (예)
Math.pow(2, 3)
은 2의 3승으로 8이다
2. Math.sqrt(x)
- x의 제곱근을 반환
- 단, x가 음수면
NaN
을 반환
sqrt()
는 Math
의 정적 메서드
3. Number.isInteger()
- 주어진 값이 정수인지 판별해줌
- 반환값은 Boolean(true, false)