문제 이해가 쉽지 않았다.
문제 이해가 안돼서 해설을 참조했다.
🔥 셀프넘버란?
850 => 850 + 8+ 5+ 0 = 863
863은 셀프넘버
다시 863 => 863 + 8 + 6 + 3 = 880
셀프넘버를 계속해서 파고드는 것으로 구하는 방법을 생각했는데, 그냥 1~10000 loop를 돌리면 어차피 모든 수에 대해서 self number가 세진다.
위의 예로 보면, 850 -> 880 까지 구할 필요 없이, 850에서 863을 구하고 set에 추가한다음에 끝낸다.
loop에서 863일 때 self number를 따지면 되기 때문.
natural_num = set(range(1,10001))
generated_num = set()
for i in range(1,10001):
for j in str(i):
i += int(j)
generated_num.add(i)
result = sorted(natural_num-generated_num)
for i in result:
print(i)