Skip to content

Latest commit

 

History

History
50 lines (38 loc) · 1.53 KB

풀이_LC202.md

File metadata and controls

50 lines (38 loc) · 1.53 KB

🧥 LeetCode 202. Happy Number

  • Date : 2021.07.18(일)
  • Time : 25분

Problem

  • 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.

Constraints

  • 1 <= digits.length <= 100
  • 0 <= digits[i] <= 9

Example

  • 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을 그 숫자로 바꿔준 뒤 다시 실행한다.