Problem
https://www.acmicpc.net/problem/4673
Solution
1
2
3
4
5
6
7
8
9
10
selfnum = set()
for i in range(1, 10000):
sum = i
for j in str(i):
sum+=int(j)
selfnum.add(sum)
for i in range(1, 10000):
if (i not in selfnum):
print(i)
Memo
위 문제를 해결하기 위해 중복이 허용되지 않는 자료형인 set를 활용하였다. 우선 for문을 돌며 1부터 10000까지의 수 중 셀프넘버가 아닌(더해서 만들어 낼 수 있는) 수를 selfnum 세트에 저장한다. 이후 1부터 다시 for문을 돌며 세트에 포함되지 않은 수를 출력하는 방식으로 구현하였다.