짱아의 개발 기록장

LeetCode : 202. Happy Number 본문

Algorithm/LeetCode

LeetCode : 202. Happy Number

jungahshin 2021. 2. 4. 12:51
반응형

[메인 로직]

false (2) -> 4 -> 16 -> 37 -> 58 -> 89 -> 145 -> 42 -> 20 -> 4

false인 경우는 특정 숫자가 계속적으로 반복되는 현상이 일어난다.

즉, 사이클이 생기는 경우는 거짓이라고 판별하는 알고리즘을 구현하면 된다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 반복되는지 살펴보기..visit 처리
class Solution {
public:
    map<intint> m;
    bool isHappy(int n) {
        do{
            string s = to_string(n);
            int num = 0;
            for(int i=0; i<s.size(); i++){
                num += (s[i]-'0')*(s[i]-'0');
            }
            if(m.count(num)==0){
                m[num] = 1;
            }else{
                return false;
            }
            if(num==1){
                return true;
            }
            n = num;
        }while(n<INT_MAX);
        
        return true;
    }
};
cs
반응형

'Algorithm > LeetCode' 카테고리의 다른 글

LeetCode : 132. Palindrome Partitioning II (BFS+String)  (0) 2021.02.16
LeetCode : 72. Edit Distance  (0) 2021.02.05
LeetCode : 73. Set Matrix Zeroes  (0) 2021.02.03
LeetCode : 57. Insert Interval  (0) 2021.02.02
LeetCode : 59. Spiral Matrix II  (0) 2021.02.02
Comments