4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net
✏️ 내가 작성한 코드
num_list = [] # d(n)담을 리스트
# 1. 1~10000까지 n을 d(n)해줌
for n in range(1, 10000):
n_sum = n # ex. d(12) = 12 + 1 + 2 -> 따라서 n, 즉 12는 먼저 sum에 넣고 1,2는 for 돌려가면서 덧셈
for i in str(n): # 문자열형식이어야 n의 각 자리수 하나씩 가져올 수 있음
n_sum += int(i)
num_list.append(n_sum)
set_num_list = set(num_list) # 중복 제거를 위해 set으로 만들어줌
# 2. 1~10000까지의 수 중에서 d(n)값들이 들어있는 리스트에 해당되지 않는 수는 출력해줌(셀프넘버)
for j in range(1, 10001):
if j not in set_num_list:
print(j)
'백준' 카테고리의 다른 글
[백준][python]15969 행복 문제 (0) | 2023.06.26 |
---|---|
[백준][python]10989 수 정렬하기 3 문제 (0) | 2023.06.26 |
[백준][python][완전탐색] 7568 덩치 문제 (5) | 2023.05.31 |
[백준][python][재귀] 10870 피보나치 수 5 문제 (0) | 2023.05.31 |
[백준][python][기본수학] 1978 소수 찾기 문제 (0) | 2023.05.26 |