문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
숫자 n이 행복한지 결정하는 알고리즘을 작성해라.
행복한 숫자는 다음 과정으로 정의되는 숫자이다.
n이 행복한 숫자이면 true, 그렇지 않으면 false를 반환해라.
#1
Input: n = 19
Output: true
Explanation:
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1
#2
Input: n = 2
Output: false
class Solution {
public boolean isHappy(int n) {
if(n == 1 || n == 7) return true;
else if(n < 10) return false;
else{
int sum = 0;
while(n > 0){
int temp = n % 10;
sum += temp * temp;
n = n / 10;
}
return isHappy(sum);
}
}
}
1과 7은 행복한 숫자이므로 true를 반환한다.
10보다 작은 숫자는 false를 반환한다.
그외에 숫자들은 n을 10으로 나누고 나머지를 제곱해서 sum에 더해주는 것을 반복한다. 이 과정이 끝나면 sum을 isHappy 메소드의 메개변수에 넣고 호출한다.