문제
k자리 수가 각 자릿수를 k제곱하여 모두 더한 값이 자기 자신과 같으면 그 수를 암스트롱 수라고 합니다. 예를 들어 153 = 1³ + 5³ + 3³ 입니다.
is_armstrong(n)을 구현하세요.
입력
n: 0 이상의 정수입니다.
출력
n이 암스트롱 수이면 true를 반환하세요.
제약 조건
0 ≤ n ≤ 10¹⁸
예시
예시 1
입력:
n = 153
예상 출력:
expected = True
입력:
long long n = 153;
예상 출력:
bool expected = true;
입력:
long n = 153;
예상 출력:
bool expected = true;
설명
1³ + 5³ + 3³ = 1 + 125 + 27 = 153입니다.
예시 2
입력:
n = 10
예상 출력:
expected = False
입력:
long long n = 10;
예상 출력:
bool expected = false;
입력:
long n = 10;
예상 출력:
bool expected = false;
설명
1² + 0² = 1로, 10이 아닙니다.
접근 방법
먼저 스스로 풀어 본 뒤 힌트를 하나씩 열어 보세요.
힌트 1
거듭제곱을 더하기 전에 먼저 자릿수를 세세요.
힌트 2
각 자릿수를 자릿수만큼 거듭제곱한 값의 합과 원래 수를 비교하세요.
힌트 3
0은 한 자리인 특수한 경우라는 점을 기억하세요.
예상 복잡도
시간 O(k), 추가 공간 O(1)
참고 자료
이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.