반응형
https://leetcode.com/problems/happy-number/description/
간단 구현 문제였습니다.
📕 풀이방법
📔 풀이과정
순환됨을 알 수 있습니다.
n = 4인 경우를 예시로
4 -> 16 -> 37 -> 58 -> 89 -> 145 -> 42 -> 20 -> 4가 되므로 1을 만들 수 없습니다.
매 단계 별로 이미 있는지 여부를 알기 위해 map에 저장해줍니다.
이런 순환구조를 가진 경우 false를 반환해줍니다.
📕 Code
📔 C++
class Solution {
public:
bool isHappy(int n) {
string num = to_string(n);
map <int,int> dict;
while(1) {
int sum = 0;
for(auto n : num) {
sum += pow(n - '0', 2);
}
if(dict[sum] || num == "1") {
break;
}
num = to_string(sum);
dict[sum] = 1;
}
return num == "1";
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - LeetCode (easy) 206. Reverse Linked List (0) | 2023.01.06 |
---|---|
(C++) - LeetCode (easy) 203. Remove Linked List Elements (0) | 2023.01.02 |
(C++) - LeetCode (easy) 191. Number of 1 Bits (0) | 2022.12.17 |
(C++) - LeetCode (easy) 190. Reverse Bits (0) | 2022.12.16 |
(C++) - LeetCode (easy) 169. Majority Element (0) | 2022.12.09 |