문제

 

내가 참고한 코드
natural_num = set(range(1, 10001))
generated_num = set()

for i in range(1, 10001):             # i = 850
    for j in str(i):                  # j = '8','5','0'
        i += int(j)                   # 850 + 8 + 5 + 0, i = 863
    generated_num.add(i)              # 생성자가 있는 숫자들
    
self_num = sorted(natural_num - generated_num)
for i in self_num:
    print(i)

> 문제를 풀지 못했다... ㅜㅜ

> 참고 블로그 

https://wook-2124.tistory.com/252

 

백준 알고리즘 | 4673 : 셀프 넘버 (Python / 파이썬)

셀프 넘버 성공출처다국어분류 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 56038 28453 22966 50.972% https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도..

wook-2124.tistory.com

 

코드 설명

> natural_num 변수는 1부터 10000까지의 전체 수 변수이다.

> generated_num 변수는 집합 자료형으로, 아래 코드에서 나온 반복 값들을 제거하기 위해 집합 자료형으로 설정

> 이중 반복문에서 i는 1부터 10000까지의 수이고, j는 각 숫자의 함수를 적용하여 나온 값을 generated_num 변수에 추가한다.

> self_num 변수는 우리가 추출해야하는 변수이고, 전체 값 natural"_num 변수에서 셀프 넘버가 아닌 함수에서 나온 값을 가진 변수 generated_num 변수를 빼면 우리가 원하는 셀프 넘버를 구할 수 있다.

> 나한테는 어려운 문제였다... 공부공부!!!

+ Recent posts