728x90
4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net
# 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 |