- 코딩 공부/Algorithm
백준4673 - 셀프넘버 Python
방개입니다
2022. 6. 24. 22:37
https://www.acmicpc.net/problem/4673
생성자라는 개념을 몰랐다. 말 그대로 생성할려면 다른 숫자를 더 해야하는 수
10 -> 10 + 1 + 0 -> 11 즉 11은 생성자
그럼 일의자리인 숫자들은?
솔직히 잘 이해가 안감 ㅋㅋㅋ
이해됨 이제 2이면 1 -> 1+1이니까 2
마지막 self_num변수는 sorted로 작은수부터 정렬하고 1부터 10000숫자에서 생성자인 숫자들을 빼면은
비생성자 숫자들만 남으니까 for문으로 다 뽑아주면은 비생성자 숫자들만 출력이 되므로 곧 정답이 된다. ㅇㅋ?
natural_num = set(range(1, 10001))
generated_num = set()
for i in range(1, 10001):
for j in str(i):
i += int(j)
generated_num.add(i)
self_num = sorted(natural_num - generated_num)
for i in self_num:
print(i)