문제는 어떻게 이해했는데 그래서 어쩌라는 걸까?
셀프 넘버를 구하기 위한 식을 세워야 하는데 도저히 떠오르지가 않아 오늘도 구글의 힘을 빌려본다.
def self_num(a):
number = int(a)
for i in list(str(a)):
number += int(i)
return number
not_self_num = []
for i in range(1, 10001):
num = self_num(i)
not_self_num.append(num)
for j in range(1, 10001):
if j in not_self_num:
pass
else:
print(j)
큰일났다... 이건 진짜 모르겠다. 이건 맞았다고 할 수 없다. 셀프넘버가 되는 기준이라할지 알고리즘이라할지 원리라할지 그런걸 도저히 이해할 수가 없다. 문자로 분리하는건 너무나 천재적인 발상인데...
결국 하나하나 디버깅을 해봤다. 드디어 이해가 갔다. 근데 문제는... 저런 코드가 나오게 된 이유... 그니까 아직도 셀프 넘버의 원리를 모르는 거다. 누구한테 물어보고 싶은 마음이 간절하지만 외로운 독학러에겐 그럴만한 사람이 없다.
https://wook-2124.tistory.com/252
이 분의 글을 보고 조금은... 이해하게 되었다. 그러나 나보고 혼자 풀라하면 못풀겠다. 아직 좀 멀었나보다. 한시간 반을 고민했으면... 충분히 고민했다고 넘어가도 될까. 나중에 다시 봐야겠다.