[LeetCode] Valid Perfect Square

아르당·2026년 1월 5일

LeetCode

목록 보기
76/94
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

양의 정수 num이 주어졌을 때, num이 완전 제곱수이면 true를, 그렇지 않다면 false를 반환해라.
완전 제곱수는 어떤 정수의 제곱인 정수이다. 다시 말해, 어떤 정수를 자기 자신과 곱한 값이다.
sqrt와 같은 내장 라이브러리 함수는 사용하면 안된다.

Example

#1
Input: num = 16
Output: true
Explanation: 4 * 4 = 16이고, 4는 정수라서 true를 반환한다.

#2
Input: num = 14
Output: false
Explanation: 3.742 * 3.742 = 14이고, 3.742는 정수가 아니라서 false를 반환한다.

Constraints

  • 1 <= num <= 2^31 - 1

Solved

class Solution {
    public boolean isPerfectSquare(int num) {
        int start = 1;
        int end = num;

        while(start <= end){
            long mid = start + (end - start) / 2;

            if(mid * mid == num) return true;
            else if(mid * mid > num) end = (int)mid - 1;
            else start = (int)mid + 1;
        }

        return false;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글