[Python] [백준 #4673] 셀프 넘버

박수경·2021년 10월 19일

문제

4673

풀면서 하는 생각

문제는 어떻게 이해했는데 그래서 어쩌라는 걸까?
셀프 넘버를 구하기 위한 식을 세워야 하는데 도저히 떠오르지가 않아 오늘도 구글의 힘을 빌려본다.

제출한 코드

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

이 분의 글을 보고 조금은... 이해하게 되었다. 그러나 나보고 혼자 풀라하면 못풀겠다. 아직 좀 멀었나보다. 한시간 반을 고민했으면... 충분히 고민했다고 넘어가도 될까. 나중에 다시 봐야겠다.

profile
유니콘을 위하여

0개의 댓글