프린세스 다이어리

[LeetCode] Valid Perfect Square - 자바스크립트 풀이 본문

자료구조, 알고리즘

[LeetCode] Valid Perfect Square - 자바스크립트 풀이

개발공주 2021. 11. 29. 18:42
728x90

 

1. 접근 방법

 

mid의 제곱이 바로 찾는 값이 되면 true를 반환하고, 이진탐색으로 left와 right를 옮겨가며 마지막까지 남은 mid값이 조건을 충족하지 않는다면 false를 반환한다.

 

2. 전체 풀이

/**
 * @param {number} num
 * @return {boolean}
 */
var isPerfectSquare = function(num) {
    if (num === 1) return 1;
    let left = 1;
    let right = Math.floor(num / 2);
    
    while (left <= right) {
        let mid = left + Math.floor((right - left) / 2);
        
        if (mid * mid === num) return true;
        
        if (mid * mid < num) {
            left = mid + 1; 
        } else {
            right = mid - 1;
        }
    }
    return false;
    
};
728x90
Comments