Menu
CoddyTech

Happy Number

양의 정수 n에서 시작해 각 자리 숫자의 제곱의 합으로 계속 바꿉니다. 예를 들어, 12는 1² + 2² = 5가 됩니다. 이 과정을 반복해 1에 도달하면 n은 행복수입니다. 그렇지 않으면 1을 포함하지 않는 숫자들 사이를 영원히 맴돕니다. n이 행복수이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

함수

isHappy(n: integer) → boolean
ninteger
테스트할 양의 정수
반환값boolean
숫자의 각 자릿수를 제곱해 더한 값을 반복했을 때 1에 도달하면 true, 무한 루프에 빠지면 false

제약 조건

  • 1 ≤ n ≤ 231-1

예제

입력
n = 7
출력
true
설명
7은 49가 되고, 이어서 4² + 9² = 97, 다음은 130, 그다음은 10, 그리고 1이 됩니다. 과정이 1에 도달하므로 7은 행복수입니다.

lock icon제출 시 숨은 테스트 +16개

challenge icon

후속 질문

1부터 10^6까지의 행복수를 빠르게 세려면 어떻게 해야 할까요? 모든 시작 숫자부터 처음부터 다시 계산하는 대신, 1000보다 작은 숫자에 대한 답을 재사용할 수 있습니다.

코드 초기화
def isHappy(n):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

케이스 3

입력

n = 7

기대값

true