[leetcode, JS] 202. Happy Number

mxxn·2023년 8월 11일
0

leetcode

목록 보기
23/198

문제

문제 링크 : Happy Number

풀이

/**
 * @param {number} n
 * @return {boolean}
 */
var isHappy = function(n) {
    let chkLeng = false
    if(n>4 && n<10) n = n**2
    while(parseInt(n/10) > 0 ) {
        n = String(n).split('').reduce((acc,cur) => acc + cur**2, 0)
        if(n>4 && n<10) n = n**2
    }
    return n === 1 ? true : false
};
  1. n을 10으로 나눴을 때 몫이 0보다 클 때까지 while문을 돌리고
  2. n은 자릿수별로 제곱해서 더하는 reduce문으로 계속 할당
  3. 예외로 한자리수 중에 제곱해서 10이 넘어가는 숫자가 있다면 그 숫자들만 별도로 제곱
  4. 최종 n의 값으로 판단하여 return
profile
내일도 글쓰기

0개의 댓글