- Date : 2021.07.18(일)
- Time : 25분
- Write an algorithm to determine if a number n is happy.
A happy number is a number defined by the following process:
- Starting with any positive integer, replace the number by the sum of the squares of its digits.
- Repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1.
- Those numbers for which this process ends in 1 are happy.
- Return true if n is a happy number, and false if not.
- 1 <= digits.length <= 100
- 0 <= digits[i] <= 9
- 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
def isHappy(self, n: int) -> bool:
squareSum = 0
for j in range(8):
squareSum = (sum(int(i) ** 2 for i in list(str(n))))
if (squareSum == 1):
return True
else:
n = squareSum
return False
: 숫자의 자리수에 각각 제곱을 한 뒤 더한 값이 1이 나오는 수가 HappyNumber이다. 그렇기때문에 먼저 squareSum(제곱해서 더한 수)에 숫자를 list화 한 후 그 숫자에 2를 제곱(**) 한 숫자를 넣어주었다. 만약 이 수가 1이라면 HappyNum이기 때문에 True 를 return 해주지만, 만약 아니라면 계속 이어가야 하기 때문에 n을 그 숫자로 바꿔준 뒤 다시 실행한다.