ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 셀프 넘버
    개발노트 2019. 12. 31. 22:12

     

    문제 해결을 위해 집합을 사용했습니다.

    파이썬에서 집합은 set을 사용해서 만들 수 있습니다.

    #셀프넘버는 생성자가 없는 숫자를 말한다.
    #셀프넘버의 예로는 1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97.... 
    #71 이면 71+ 7+ 1
    set1 = set([])
    def solve(i):
        ans = 0
        ans += i
        for j in str(i):
            ans += int(j)
        #ans들 집합에 넣고 1부터 10000의 수와 교집합을 제외하면 나머지만 남는다.
        #print(ans)
        set1.add(ans)
    
    for i in range(1, 10001):
        solve(i)
    
    set2 = set(range(1, 10001))
    set3 = set2 - set1
    set3 = sorted(set3)
    for s in set3:
        print(s)

    함수를 이용해서 셀프 넘버 이외의 값들을 set1집합에 넣어줍니다.

    1부터 10000까지 숫자가 들어있는 set2에서 set1을 빼서 셀프 넘버를 구합니다.

     

    작은 수 부터 출력되게 하기 위해 sorted를 사용했습니다.

     

    댓글

Designed by Tistory.