A perfect square is an integer that is the square of an integer. In other words, it is the product of some integer with itself.
You must not use any built-in library function, such as sqrt.
Example 1:
Input: num = 16
Output: true
Explanation: We return true because 4 * 4 = 16 and 4 is an integer.
Example 2:
Input: num = 14
Output: false
Explanation: We return false because 3.742 * 3.742 = 14 and 3.742 is not an integer.
Constraints:
1 <= num <= 231 - 1
/**
* @param {number} num
* @return {boolean}
*/
var isPerfectSquare = function(num) {
for (let i = 1; i < Number.MAX_SAFE_INTEGER; i++) {
if (i * i == num) {
return true;
break;
} else if (i * i < num && (i + 1) * (i + 1) > num) {
return false;
break;
}
}
};
sqrt같은 내장 함수를 쓰지 않고 주어진 num이 어떤 정수의 제곱인지를 확인하는 문제이다.
Number.MAX_SAFE_INTEGER는 JS에서 안전하게 표현할 수 있는 가장 큰 정수인데 일단 반복문을 1부터 여기까지 돌리면서 중간에 답을 찾으면 break로 빠져나오는 logic을 짰다.