백준 4673 셀프 넘버 not in

문제링크: https://www.acmicpc.net/problem/4673

난 처음부터 이 문제 알고리즘 짜는거에 해맬것 같았다....

지금 보면 간단하지만, 중간에 길을 계속 잃는 느낌이 들었다.
집중을 못해서 그런건가...

not_self_nums = []

def d(a):
    for i in range(1, a):
        sum_number = i
        for j in range(len(str(i))):
            sum_number += int(str(i)[j])
        not_self_nums.append(sum_number)
        if i not in not_self_nums:
            print(i)

d(10000)

일단 처음에 셀프 넘버가 아닌 숫자들이 들어갈 리스트를 선언해 주었다.
그리고 식의 알고리즘인 처음 숫자를 먼저 더하고 그 다음엔 자릿수대로 더하는 것을 표현해 주었고, 그렇게 해서 생성자가 있는 숫자들을 가려내고 그 해당 숫자를 리스트에 넣었다.

그리고 그 리스트에 값이 존재하지 않는 수는 셀프넘버가 아니므로 그 숫자를 출력해 주었다.
(not in활용)

좋은 웹페이지 즐겨찾기