https://www.acmicpc.net/problem/4673
def selfnumber(n):
num = 0
n_str = str(n)
for i in range(len(n_str)):
num += int(n_str[i])
num += int(n_str)
return num
n_list = list(range(10000))
for i in range(len(n_list)):
if selfnumber(i) in n_list:
n_list.remove(selfnumber(i))
for i in range(len(n_list)):
print(n_list[i])
문제를 보고 생성자를 구하는 함수를 바로 만들어 두었다. 처음에는 셀프 넘버가 만들어지는 역순을 생각해야하는 건가 싶었는데, 그건 절대 아닌 것 같아서 10000까지의 숫자에서 생성자가 있는 수들을 제거한 뒤에 생성자가 없는 수들을 출력했다. 당연히 시간 초과가 나올 줄 알았는데 정답으로 출력됐다. 분명 더 좋은 풀이가 있을 것..
range를 통한 리스트 선언, 함수를 이용한 문제풀이