하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능
[3코1파] 2023.01.04~ (186차)
[4코1파] 2023.01.13~ (178일차)
[1스4코1파] 2023.04.12~ (89일차)
[1스4코2파] 2023.05.03 ~ (67일차)
2023.07.07 [186일차]
LeetCode Patterns
202. Happy Number
https://leetcode.com/problems/happy-number/description/
https://leetcode.com/problems/happy-number/description/
문제 설명
주어진 number를 일의 자리에서 제곱한 것을 더하고 더하고 더하고 더하고 계속해서 1이 나오는지 나오면 해피해피해피해피 넘버
아니면 이이잉 넘버 (언해피넘버)
이이잉 넘버는 계속 더하면 끝없이 계속 순환되는 패턴임
문제 풀이 방법
주어진 숫자가 10 이상의 숫자이면 divide 해서 제곱한 후 나눠야 하므로 주어진 숫자를 n으로 나눠서 나머지와 몫으로 square 하고 더하는 함수를 만들어주고, 해당 숫자가 1이 나오면 true 아니면 false를 retrun 함.
순환하는 경우도 있으므로 더해진 숫자들을 저장하는 set 자료구조 할당 해줘야 함
내 코드
class Solution:
def isHappy(self, n: int) -> bool:
nSet = set()
while n not in nSet:
nSet.add(n)
n = self.sumOfSquares(n)
if n ==1 :
return True
return False
def sumOfSquares(self, n:int) -> int:
output = 0
while n:
digit = n%10
digit = digit **2
output += digit
n = n //10
return output
증빙
여담
처음 문제 받고
code 영상 보고 풀기