ideal insane

Resistance ∙ Pioneer ∙ 생산자

Algorithm/BAEKJOON - Python

4673번: 셀프 넘버

Idealinsane 2022. 12. 25. 13:47
728x90
 

4673번: 셀프 넘버

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

www.acmicpc.net

4673번: 셀프 넘버

# 1.1 리스트 all_num에 1부터 10000까지 순서대로 넣고,
# 1.2 생성자가 있는 숫자를 not_self_num 리스트에 넣는다.
# 2. all_num과 not_self_num 리스트의 차집합은 셀프넘버의 집합(self_num)이다.
# 3. self_num 리스트의 요소를 하나씩 출력한다.

# 매개변수가 생성자인 수를 리턴하는 함수
def d(num): 
    for cycle in str(num):
        num += int(cycle)
    return num
    
#1.1
all_num = list(range(1,10001))

#1.2
not_self_num = list()
for  check in range(1,10001):
    not_self_num.append(d(check))

#2
self_num = [x for x in all_num if x not in not_self_num]

#3
for num in self_num:
    print(num)

궁금하신 사항이나 조언 댓글로 부탁드립니다:)

 

반응형

'Algorithm > BAEKJOON - Python' 카테고리의 다른 글

2231: 분해합  (0) 2023.01.01
2798: 블랙잭  (0) 2022.12.28
1015: 수열 정렬 - 문제 이해/해설  (0) 2022.12.26
2525: 오븐 시계  (0) 2022.12.25