개발 로그/알고리즘

202. Happy Number.cpp

CyberSoak 2021. 11. 24. 14:33

🔑 반복되는 sum이 있을 때, 무한 루프 돌게 되는 점을 착안하여 알고리즘을 구상한다.

 

class Solution {
public:
    bool isHappy(long long n) {
        int sum =0;
        long long maxn =0;
        int cnt =0;
        while(1){
            cnt++;
            while(n!=0){
                sum += pow(n%10,2);
                n/=10;
            }
            n = sum;
            sum =0;
            if(n==maxn) return false;
            if(n==1) break;
            if(cnt>5 && n>maxn) maxn = max(n,maxn);
        }
        return true;
    }
};