728x90
반응형
문제 링크
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
풀이
answer=[]
for i in range(10000):
answer.append(i+1)
for i in range(1, 10000):
if i < 10:
i = i + i
elif 10 <= i < 100:
i = i + i//10 + i%10
elif 100 <= i < 1000:
i = i + i//100 + i%100//10 + i%10
elif 1000 <= i < 10000:
i = i + i//1000 + i%1000//100 + i%1000%100//10 + i%10
if i in answer:
answer.remove(i)
for i in range(len(answer)):
print(answer[i])
다른 풀이
num = set(range(1,10001))
rmv = set()
for i in range (1,10001):
for j in str(i):
i += int(j)
rmv.add(i)
num = num - rmv
for k in sorted(num):
print(k)
- 항상 간결하게 코드를 작성하려고 노력하자...
728x90
반응형
'알고리즘 정복하기! > 백준 문제풀이' 카테고리의 다른 글
백준 10872번 Python / Math (0) | 2022.02.08 |
---|---|
백준 2908번 Python / Math (0) | 2022.02.08 |
백준 3502번 Python / Math (0) | 2022.02.08 |
백준 4344번 Python / Math (0) | 2022.02.08 |
백준 1546번 Python / Math (0) | 2022.02.08 |
댓글