풀이 1부터 10,000 까지의 정수 중 셀프 넘버를 찾는 문제다. 1부터 10,000 까지의 정수를 set 자료형에 담은 뒤 셀프 넘버가 아닌 숫자들을 remove 에 담아 차집합을 구하면된다. 오름차순으로 출력해야하기 때문에 정렬 후 for문으로 출력하면된다. 소스코드 nums = set(range(1, 10000)) remove = set() for num in nums : for n in str(num): num += int(n) remove.add(num) self_nums = nums - remove for self_num in sorted(self_nums): print(self_num) References BOJ 4673 - 셀프 넘버