[LeetCode] 202. Happy Number (Python)

2025. 1. 27. 23:38·코딩 테스트
728x90

1. 문제

https://leetcode.com/problems/happy-number/description/?envType=study-plan-v2&envId=top-interview-150

2. 풀이

Hash 를 사용한 기본 문제. 문제 이해를 완벽하게 못해서 헤맸다.

각 자리수를 제곱하여 sum 하는 사이클을 돌다가 만약 1로 끝나면 happy number 이므로 return true 아니면 return false

n=2 인 경우 2 -> 4 -> 16 -> 37 ->  58 -> 89 -> 145 -> 42 -> 20 -> 4 (cycle 발생)

즉 방문했던 숫자를 또 방문하면 return false를 반환해야한다.

 

3. 코드

class Solution:
    def isHappy(self, n: int) -> bool:
        answer = False
        visited = {'n': True}

        while (1):
            str_num = str(n)
            total = 0
            for i in range(len(str_num)):
                total += int(str_num[i]) * int(str_num[i])
            if (total == 1):
                answer = True
                break
            if str(total) in visited:
                break
            n = total
            visited[str(total)] = True
    
        return answer

 

다른사람 풀이

class Solution:
    def isHappy(self, n: int) -> bool:
        seen = set()
        while n != 1 and n not in seen:
            seen.add(n)
            s = 0
            for i in range(len(str(n))):
                num = n % 10
                n = n // 10
                s += num ** 2

제곱은 파이선에서 **을 사용하고

digit n 을 10으로 계속 나누어서 갱신 && 10으로 나눈 나머지로 제곱해서 토탈 sum 을 구한다.

728x90
저작자표시 비영리 변경금지 (새창열림)

'코딩 테스트' 카테고리의 다른 글

[LeetCode] 290.Word Pattern (Python)  (0) 2025.01.28
[LeetCode] 205. Isomorphic String (Python)  (0) 2025.01.28
[HackerRank] Contacts (Python)  (0) 2025.01.18
[HackerRank] Find the Running Median (Python)  (0) 2025.01.18
[HackerRank] Tree: Level Order Traversal  (0) 2025.01.18
'코딩 테스트' 카테고리의 다른 글
  • [LeetCode] 290.Word Pattern (Python)
  • [LeetCode] 205. Isomorphic String (Python)
  • [HackerRank] Contacts (Python)
  • [HackerRank] Find the Running Median (Python)
zoodi
zoodi
IT/개발 관련 지식을 기록하는 블로그입니다.
  • zoodi
    오늘의 기록
    zoodi
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 후기
        • 컨퍼런스
        • 일상리뷰
      • 금융경제
        • 뉴스
        • 금융IT용어
        • 경제 및 부동산
      • 코딩 테스트
      • 스터디
        • JAVA
        • Kotlin
        • Spring
        • React, Nextjs
        • 인공지능 AI
        • Cloud & k8s
        • Kafka
        • Database
        • Network
        • Algorithm
        • Hadoop
        • LINUX
        • R Programming
        • 기타 (소공, 보안)
      • 도서
      • 기타
  • 블로그 메뉴

    • 홈
    • 스터디
    • 금융경제
    • 후기
    • 기타
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java
    Kotlin
    CodingTest
    kafka
    스프링
    코딩테스트
    리트코드
    db
    프로그래머스
    MySQL
    C++
    Python
    쿠버네티스
    네트워크
    자바
    코테
    이분탐색
    카카오코테
    LeetCode
    스프링부트
    알고리즘
    코딩
    자료구조
    codility
    Spring
    금융용어
    코딜리티
    코테공부
    springboot
    pythoncodingtest
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
zoodi
[LeetCode] 202. Happy Number (Python)
상단으로

티스토리툴바