보통 0명 해결 정답률 0%

자리수 거듭제곱 합

각 자리 숫자를 왼쪽에서부터의 위치만큼 거듭제곱하여 모두 더하세요.

배우게 될 내용

  • 숫자를 왼쪽부터 자릿수로 나누기
  • 자리 위치에 따라 각 자릿수를 거듭제곱하기
  • 반복문 안에서 합계 누적하기

문제

원문 보기 (영어)

n의 각 자리 숫자를 왼쪽에서부터 1번으로 번호를 매깁니다. 각 자리 숫자를 해당 위치의 거듭제곱으로 올리고, 그 결과를 모두 더하세요. 예를 들어 352의 경우 3¹ + 5² + 2³ 입니다. 0인 자리 숫자는 0을 더합니다.

digit_power_sum(n)을 구현하세요.

입력

n: 양의 정수

출력

거듭제곱된 자리수의 합을 반환하세요.

제약 조건

1 ≤ n ≤ 1,000,000,000

예시

예시 1
입력:
n = 352

예상 출력:
expected = 36
입력:
long long n = 352;

예상 출력:
long long expected = 36;
입력:
long n = 352;

예상 출력:
long expected = 36;

설명

3¹ + 5² + 2³ = 3 + 25 + 8 = 36.

예시 2
입력:
n = 89

예상 출력:
expected = 89
입력:
long long n = 89;

예상 출력:
long long expected = 89;
입력:
long n = 89;

예상 출력:
long expected = 89;

설명

8¹ + 9² = 8 + 81 = 89, 즉 자기 자신입니다.

접근 방법

먼저 스스로 풀어 본 뒤 힌트를 하나씩 열어 보세요.

힌트 1

숫자를 왼쪽에서 오른쪽으로 한 자리씩 훑으면서 각 자리의 위치를 추적하세요.

힌트 2

숫자를 문자열로 바꾸거나, 각 자리를 결합하기 전에 왼쪽부터의 인덱스를 알 수 있어야 합니다.

힌트 3

0인 자리는 값은 없지만, 지수 계산에서는 위치가 여전히 중요합니다.

예상 복잡도

시간 O(d), 추가 공간 O(1)

다른 사람의 풀이 보기

커뮤니티 솔루션

아직 공개된 풀이가 없습니다. 문제를 풀고 첫 풀이를 공유하세요.