Byte by Byte

202. Happy Number.cpp 본문

개발 로그/알고리즘

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;
    }
};

'개발 로그 > 알고리즘' 카테고리의 다른 글

2. Add Two Numbers.cpp  (0) 2021.11.26
290. Word Pattern.cpp  (0) 2021.11.25
766. Toeplitz Matrix.cpp  (0) 2021.11.22
1700. Number of Students Unable to Eat Lunch.cpp  (0) 2021.11.21
349. Intersection of Two Arrays.cpp  (0) 2021.11.20