본문 바로가기

자료구조&알고리즘/알고리즘-문제풀이

[BAEKJOON] 4673-셀프 넘버

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

 

# 1부터 10000까지의 수를 수열식을 통해 계산한다.
# 계산된 숫자를 리스트에 넣는다. 이때, 계산 된 수는 생성자가 있는 수이다.

target = 10000
numList = [i for i in range(1, target + 1)]

genNum = 0
genNumList = []
for num in numList:

    sepNum = list(map(lambda x : int(x), list(str(num))))
    genNum = num + sum(sepNum)
    genNumList.append(genNum)
    

res = [ g for g in numList if g not in genNumList ]
for r in res:
    print(r)
반응형