반응형
코드
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 k in self_num :
print(k)
이 문제에서는 셀프 넘버를 구하기 위해 생성된 변수를 구하고 이를 generated_num 변수에 저장한다.
natural_num 변수는 1~10000을 저장하고 있으며 셀프 넘버를 구하기 위해 natural_num에 저장된 값들 중에 generated_num 값들을 빼주면 되기에 set자료형을 사용하여 차집합을 연산한다.
sorted(natural_num - generated_num)을 통해 차집합을 구하고 정렬시킨다.
생성되는 수는 2중 for문을 이용해 i 에 자연수를 받고 이를 str() 문자열 자료형으로 바꾼 후 j에 하나씩 전해준다. 문자열로 전달된 j 값은 int(j)를 통해 정수형 자료로 바꿔주며 i값에 모든 자릿수를 더해주면 생성자를 구할 수 있다.
https://wook-2124.tistory.com/252
위 사이트를 참고 하였으며 잘 설명이 되어있으니 필요시 보시면 되겠습니다.
반응형
'Algorithm > Boj' 카테고리의 다른 글
백준 2775 파이썬 / 부녀회장이 될테야 (0) | 2022.02.04 |
---|---|
백준 2839 파이썬 / 설탕배달 (0) | 2022.02.04 |
백준 8958 파이썬 (0) | 2022.01.29 |
백준 4344 파이썬 (0) | 2022.01.29 |
백준 15720 python (0) | 2022.01.27 |