https://leetcode.com/problems/happy-number/
* 각 자리 숫자를 제곱하여 더한 숫자가 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;
}
}
'코딩테스트 > LeetCode' 카테고리의 다른 글
[LeetCode]153. Find Minimum in Rotated Sorted Array (0) | 2022.11.07 |
---|---|
[LeetCode]54. Spiral Matrix (0) | 2022.11.04 |
[LeetCode]74. Search a 2D Matrix (0) | 2022.11.03 |
[LeetCode]34. Find First and Last Position of Element in Sorted Array (0) | 2022.11.02 |
[LeetCode] 54.spiral-matrix (0) | 2022.09.01 |