두 번쨈 문제는 Happy Number다
해석상으로는 각 자리수를 제곱해서 더한것을 계속 반복했을 때 마지막이 1이되면 Happy Number이고
그렇지 않고 cycle이 돈다면 그렇지 않은 수다.
https://leetcode.com/problems/happy-number/
그래서 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 == 1) return true;
map<int, int> m;
while(true){
int sum = 0, temp = n;
while(temp){
sum += (temp % 10) * (temp % 10);
temp /= 10;
}
if(sum == 1) return true;
if(!m[sum]){
m[sum] = 1;
}
else{
break;
}
n = sum;
}
return false;
}
};
|
cs |
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 |
댓글 영역