https://leetcode.com/explore/interview/card/top-interview-questions-medium/113/math/815/
hashmap 알고리즘 사용
/**
* @param {number} n
* @return {boolean}
*/
const isHappy = function(n) {
const hashMap = new Set();
function loopNumber(value) {
if (value === 1) return true;
const splitNumber = String(value).split('');
const powNumber =
splitNumber.reduce((sum, num) => sum += Math.pow(Number(num), 2), 0);
if (hashMap.has(powNumber)) return false;
hashMap.add(powNumber);
return loopNumber(powNumber);
}
return loopNumber(n);
};
It is a best solution found that very popular and helpful:
https://www.youtube.com/watch?v=BUqnq05LlJo&ab_channel=EricProgramming