반응형
SMALL
양수 n이 있다. n에 들어있는 각 숫자의 제곱을 더해서 1이나오면 True를 리턴한다. 서클이되거나 끝없는 루프를 돌게 되면 False를 리턴한다.
solution 1.
무한 루프를 돌게 하고 그 안에서 합이 n이 되게 계속 반복한다. 그리고 내부에 n의 각 부분을 하나씩 돌면서 합을 찾고 합이 1이면 True를 리턴한다. 서클을 찾는 방법도 넣어야한다. 그 방법은 같은 숫자가 다시 돌아오면 서클이라고 할 수 있기 때문에 메모제이션을 활용하여 딕셔너리에 해당 값이 다시 들어온다면 False로 리턴한다.
class Solution:
def isHappy(self, n: int) -> bool:
ck = collections.defaultdict(int)
while True:
if ck[n]:
return False
else:
ck[n] = 1
n = str(n)
sum_ = 0
for i in range(len(n)):
sum_ += int(n[i])**2
if sum_ == 1:
return True
n = sum_
반응형
LIST
'[ leetcode ]' 카테고리의 다른 글
217. Contains Duplicate (0) | 2023.01.17 |
---|---|
160. Intersection of Two Linked Lists (0) | 2023.01.03 |
141. Linked List Cycle (0) | 2023.01.01 |
118. Pascal's Triangle (0) | 2022.12.27 |
101. Symmetric Tree (0) | 2022.12.20 |