상세 컨텐츠

본문 제목

202. Happy Number (C++)

알고리즘/leetcode

by 아리따운노을 2021. 10. 7. 23:58

본문

두 번쨈 문제는 Happy Number다

해석상으로는 각 자리수를 제곱해서 더한것을 계속 반복했을 때 마지막이 1이되면 Happy Number이고

그렇지 않고 cycle이 돈다면 그렇지 않은 수다.

 

https://leetcode.com/problems/happy-number/

 

Happy Number - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

그래서 cycle을 체크하고자 map을 사용했고 나머지는 그냥 구현했다.

 

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
26
27
class Solution {
public:
    bool isHappy(int n) {
        if(n == 1return true;
        map<intint> m;
        
        while(true){
            int sum = 0, temp = n;
            while(temp){
                sum += (temp % 10* (temp % 10);
                temp /= 10;
            }
            if(sum == 1return true;
            if(!m[sum]){
                m[sum] = 1;
            }
            else{
                break;
            }
            n = sum;
        }
        
        return false;
    }
};
cs

 

'알고리즘 > leetcode' 카테고리의 다른 글

169. Majority Element (C++)  (0) 2021.10.31
804. Unique Morse Code Words (C++)  (0) 2021.10.31
190. Reverse Bits (C++)  (0) 2021.10.07
20. Valid Parentheses (C++)  (0) 2021.10.06
119. Pascal's Triangle II (C++)  (0) 2021.10.05

관련글 더보기

댓글 영역