4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net
이전 풀이
https://dmaolon00.tistory.com/12
[백준_python] 함수, not in || 15596, 4673
1. 정수 N개의 합 15596번: 정수 N개의 합 (acmicpc.net) 15596번: 정수 N개의 합 C++17, Java 8, Python 3, C11, PyPy3, C99, C++98, C++11, C++14, Python 2, PyPy2, Go, C99 (Clang), C++98 (Clang), C++11 (Cl..
dmaolon00.tistory.com

1부터 10000까지에서 총 생정자들을 모두 구해준 후, 빼주고 남은 수들을 print해주었다.
num = [i for i in range(1, 10001)]
d = []
for i in range(1, 10001):
if(i < 10):
a = i + i
d.append(a)
else:
a = i
i = str(i)
for j in range(len(i)):
a += int(i[j])
if(a not in d):
d.append(a)
for i in num:
if(i not in d):
print(i)
이전 풀이를 보니 생성자를 구하는 함수를 따로 만들어주고, 마지막에 10000번에 for문을 돌며 생성자가 아니면 출력하는 식으로 해주었다. 이전에 풀어둔 것이 훨씬 깔끔했고, for문을 적게 사용하여 시간도 적게 걸렸다.!!
반응형