본문 바로가기

Algorithm/Math

(C++) - LeetCode (easy) 367. Valid Perfect Square

반응형

https://leetcode.com/problems/valid-perfect-square/description/

 

Valid Perfect Square - LeetCode

Can you solve this real interview question? Valid Perfect Square - Given a positive integer num, return true if num is a perfect square or false otherwise. A perfect square is an integer that is the square of an integer. In other words, it is the product o

leetcode.com

가우스의 제곱합 공식을 이용한 문제였습니다.

📕 풀이방법

📔 풀이과정

완전 제곱수는 연속된 홀수를 더하는 수열의 합으로 표현 가능합니다.

1 = 1

1 + 3 = 4

1 + 3 + 5 = 9

1 + 3 + 5 + 7 = 16

 

따라서 이렇게 더했을 때 도중에 num이 나오면 true, 아니면 false를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    bool isPerfectSquare(int num) {
        long long cnt = 0;
        for(int i = 1; cnt <= num; i += 2) {
            cnt += i;
            if(cnt == num) return true;
        }
        return false;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.