function solution(n) {
return Number.isInteger(Math.sqrt(n)) ? (Math.sqrt(n) + 1) ** 2 : -1;
}
처음 문제를 풀땐, for문과 if문을 사용하여 조금은 조잡하게 풀었었다.
그러나 else if를 사용하니 원하는데로 결과가 나오지 않았고, 다른 풀이들을 살펴보았는데 숫자의 제곱근을 반환하는 함수가 있다는걸 알게 되었다💡
Math.sqrt()를 사용하니 코드가 훨씬 간결해졌고 이해하기도 쉬워졌다.
먼저 Number.isInteger을 사용하여 n의 제곱근이 정수인지 확인하였고 정수가 맞다면
반환값 + 1을 제곱한 값을 리턴, 아니라면 -1을 리턴하도록 코드를 작성하였다.
➡️ 숫자의 제곱근을 반환한다.
괄호 안에 특정 숫자를 넣으면 된다.
Math.sqrt(121); // 11 반환
➡️ 숫자가 정수라면 true를, 아니라면 false를 반환한다.
Number.isInteger(100); // true
Number.isInteger(1.1); // false