본문으로 바로가기

[LeetCode]202. Happy Number

category 코딩테스트/LeetCode 2022. 11. 3. 21:38

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

* 각 자리 숫자를  제곱하여 더한 숫자가 1이 되는지 여부를 확인하는 문제

 

이 문제의 핵심은 어느 수에 도달했을 때 false를 return 할 것인가 라고 생각된다.

-> 1을 제외한 5이하의 자연수에서는 아무리 제곱을 해도 1이 도출 될 수 없다.

 

class Solution {
    
    static boolean answer;
    
    public void multi(int n){
        
        int sum = 0;
        while(n > 0){
            int tmp = n % 10; 
            n/=10;
            sum += (tmp* tmp);
        }
        
        if(sum == 1) {
            answer = true;
            return;
        } else if(sum <= 5) {
            answer = false;
            return;
        } else multi(sum);
    }
    
    public boolean isHappy(int n) {
        multi(n);

        return answer;
    }
}