- 코딩 공부/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)