[BOJ]4673:セルフサービス番号



🔒 例

>> 

1
3
5
7
9
20
31
42
53
64
 |
 |       <-- a lot more numbers
 |
9903
9914
9925
9927
9938
9949
9960
9971
9982
9993

🔧 に答える

1. d(n) = n + n의 각 자리 수
2. d(n)의 결과를 기록
3. 결과가 없는 숫자 = 셀프 넘버

🔑 答案用紙

import sys

def d(n):
    l =  len(n)
    result = int(n)
    for i in range(l):
        result += int(n[i])
    return result

nums = [0 for _ in range(20000)]

for i in range(1, 20000):
    a = d(str(i))
    if a > 10001: continue
    nums[a] = 1

for i in range(1, 10001):
    if nums[i] == 0:
        print(i)

💡 コンセプト