백준 4673 파이썬

2023. 2. 4. 01:40백준 알고리즘

https://www.acmicpc.net/problem/4673

 

4673번: 셀프 넘버

셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,

www.acmicpc.net

 

 

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)

이 문제에서 주의해야 하는 것은 2가지다. 

먼저, set()을 사용해야 하는 것이고, 그 다음으로 sorted 함수를 사용해야하는 것이다. 

나는 이 문제를 1~10000 까지의 set을 만든 다음, 모든 수의 생성자를 구하고 

빼기를 통해 모든 생성자를 빼주었다. 그렇다면 남은 수는 셀프 넘버일 수 밖에 없다.

리스트로 이 문제를 해결하고자 한다면, 조금 더 복잡해지므로, set을 사용했다. 

'백준 알고리즘' 카테고리의 다른 글

백준 24060 파이썬  (1) 2023.02.04
백준 2108 파이썬  (1) 2023.02.04
백준 25501 파이썬  (0) 2023.02.02
백준 10872 파이썬  (0) 2023.02.02
백준 25305 파이썬  (0) 2023.02.02