num = set(range(1,10001))
num2 = set()
for i in num:
for j in str(i):
i += int(j)
num2.add(i)
result = num-num2
for h in sorted(result):
print(h)
- num λ°°μ΄μ setμ μ΄μ©νμ¬ 1~10000κΉμ§ μ±μ°κΈ°
- μμ±μκ° μλ μ«μλ₯Ό λ£μ΄μ£ΌκΈ° μν λ°°μ΄ num2 μμ±
- λ°λ³΅λ¬Έμ ν΅ν΄ μμ±μκ° μλ μ«μλ₯Ό num2μ add
ex) i = 12 -> j = '1','2' / then, i = 12+1+2 = 15
λ°λΌμ num2μ 15λ₯Ό add!- λͺ¨λ κ°μ΄ λ€μ΄μλ λ°°μ΄ numμμ μμ±μκ° μλ μ«μκ° λ€μ΄μλ λ°°μ΄ num2λ₯Ό λΉΌμ£Όμ΄ result λ°°μ΄ μμ±
- setμ '-'μ°μ° κ°λ₯!(μ°¨μ§ν©)
- λ°λ³΅λ¬Έ μ¬μ©νμ¬ result λ°°μ΄μ λ€μ΄μλ κ° νλμ© μΆλ ₯~!
- sortedλ‘ μμ μ λ ¬ν΄μ£ΌκΈ°
numbers = list(range(1, 10_001))
remove_list = [] # μ΄νμ μμ ν μ«μ list
for num in numbers :
for n in str(num):
num += int(n) # μμ±μκ° μλ μ«μ
if num <= 10_000: # 10,000λ³΄λ€ μκ±°λ κ°μ λλ§,
remove_list.append(num) # append: 리μ€νΈμ μμλ₯Ό μΆκ°ν λ
for remove_num in set(remove_list) : # set μΌλ‘ μ€λ³΅κ° μ κ±°
numbers.remove(remove_num)
for self_num in numbers : # μμ±μκ° μλ μ«μλ₯Ό μμ ν 리μ€νΈ
print(self_num)
setμ΄ μλ listλ₯Ό μ΄μ©ν νμ΄λ°©λ²λ μμλ€.
setμ μ§ν©μ κ΄λ ¨λ κ²μ μ½κ² μ²λ¦¬νκΈ° μν΄ λ§λ μλ£νμ΄λ€.
κ΅μ§ν©
s1 & s2
ν©μ§ν©
s1 | s2
s1.union(s2)
μ°¨μ§ν©
s1 - s2
s2 - s1
κ° 1κ° μΆκ°νκΈ°(add)
s1.add(4)
κ° μ¬λ¬ κ° μΆκ°νκΈ°(update)
s1.update([4, 5, 6])
νΉμ κ° μ κ±°νκΈ°(remove)
s1.remove(2)