numbers = set(range(1,10001))
generated = set()
for i in range(1, 10001):
for j in str(i):
i += int(j)
generated.add(i)
numbers = sorted(numbers-generated)
for i in numbers:
print(i)
numbers
집합에 1부터 10000까지를 넣고, for문을 돌리면서 각 자릿수와 숫자 자체를 generated
집합에 넣어 준다. 집합을 사용함으로써 중복 없이 처리할 수 있고, 마지막에 numbers-generated
으로 차집합을 구해 답을 낼 수 있다. 대신 하나씩 증가하는 순서랬으므로 sorted
으로 정렬 필요
sorted(iterable)
은 iterable
그대로 정렬하는 iterable.sort()
와 다르게 정렬된 새로운 배열을 리턴한다.