Development Artist

[COS Pro 1급, Python] 4차 6번 : 자아도취 수 본문

Algorithm/COS

[COS Pro 1급, Python] 4차 6번 : 자아도취 수

JMcunst 2022. 2. 25. 13:13
728x90
반응형

문제 유형

 빈칸

난이도

 hard

Note 

 1. 자아도취 수 : 어떤 자리수 K가 주어졌을 때, 각 자리수의 K제곱합이 자기 자신이 되는 수.

 2. K의 의미. k = 3면 100~999까지 숫자 범위. k = 4면 1000~9999. 즉, 범위를 나타냄. 따라서, for문의 범위를 정할 수 있음. (코드 11, 12줄)

 3. calculated += power(current%10, k) : k 제곱수 더하고, current //= 10 : 다음 자리수로 이동 -> 반복

 

Code

# -*- coding: utf-8 -*-
# UTF-8 encoding when using korean
def power(base, exponent):
	val = 1
	for i in range(exponent):
		val *= base
	return val

def solution(k):
	answer = []
	bound = power(10, k)
	for i in range(bound // 10, bound):
		current = i
		calculated = 0
		while current != 0:
			calculated += power(current%10,k)
			current //=10
		if calculated == i:
			answer.append(i)
	return answer

k = 3
ret = solution(k)

print("solution 함수의 반환 값은", ret, "입니다.")

 

※ 가끔 코드 중 print(~)가 있습니다. 정리 못한 점 죄송합니다.

728x90
반응형
Comments