https://youtu.be/ljz85bxOYJ0?si=0jgqxJfkCYKkgVEL
class Solution:
def isHappy(self, n: int) -> bool:
# 이미 방문한 숫자를 저장할 집합 (무한 루프를 방지하기 위함)
visit = set()
# 숫자가 이미 visit에 없으면 계속 반복
while n not in visit:
visit.add(n) # 현재 숫자를 방문한 것으로 표시
n = self.sumOfSquares(n) # 현재 숫자의 각 자릿수 제곱합으로 갱신
# 숫자가 1이면 행복한 수이므로 True 반환
if n == 1:
return True
# n이 visit에 이미 있다면, 무한 루프에 빠진 상태이므로 False 반환
return False
def sumOfSquares(self, n: int) -> int:
# 숫자의 각 자릿수 제곱합을 계산
output = 0
while n:
digit = n % 10 # 현재 숫자의 마지막 자리 숫자
digit = digit ** 2 # 해당 자리 숫자를 제곱
output += digit # 제곱 값을 합산
n = n // 10 # 숫자를 10으로 나누어 자릿수를 줄임
return output
'LeetCode > Top Interview 150' 카테고리의 다른 글
73. Set Matrix Zeroes (0) | 2024.12.02 |
---|---|
219. Contains Duplicate II (0) | 2024.12.01 |
Hashmap: 1. Two Sum ★ (1) | 2024.12.01 |
290. Word Pattern (0) | 2024.11.30 |
205. Isomorphic Strings (1) | 2024.11.30 |