jyamethyst21 님의 블로그

백준 23037번 - '5의 수난' (PYTHON 풀이) 본문

CODING 💻

백준 23037번 - '5의 수난' (PYTHON 풀이)

jyamethyst21 2026. 4. 5. 00:54

문제:

 

다섯자리인 수를 입력받았을 때 각 자릿수별로 전부 다섯제곱한 값을 더해서 출력하면 되는 문제이다.

예를 들어 12345인 경우, 1에서 다섯제곱, 2에서 다섯제곱 ... 5에서 다섯제곱한 값을 전부 더해서 출력한다는 의미이다.

 

풀이:

N = input()

total = 0
for i in N:
    total += int(i)**5

print(total)

이전에 포스팅한 글에서도 언급했다시피, 숫자는 iterable 즉, 반복 가능한 객체가 아니라서 각 자릿수별로 꺼내려면 /, %를 활용해야 한다. 하지만 문자열은 iterable한 객체이므로 각 자릿수별로 간단하게 꺼낼 수가 있다.

그래서 필자는 처음부터 입력값을 숫자가 아닌 문자열 형태로 입력받았고, 총 합계를 계산할 변수인 total을 초기화하였다.

그 후 반복을 위해 입력받은 값을 돌면서 다섯제곱 계산을 위해 이때 각 자릿수를 숫자로 변경한 뒤 다섯 제곱을 진행하고 이 값을 total에 추가하는 식으로 코드를 짰다.

 

그러면 모든 반복문이 돌고 난 다음에 total은 각 자릿수마다 다섯제곱한 값이 전부 더해져있을 것이므로 해당 값을 출력하면 된다.