백준 4673

soss·2022년 11월 1일
0
post-thumbnail

업로드중..

https://www.acmicpc.net/problem/4673

def selfnumber(n):
    num = 0
    n_str = str(n)
    for i in range(len(n_str)):
        num += int(n_str[i])
    num += int(n_str)
    return num

n_list = list(range(10000))

for i in range(len(n_list)):
    if selfnumber(i) in n_list:
        n_list.remove(selfnumber(i))

for i in range(len(n_list)):
    print(n_list[i])

시행착오

문제를 보고 생성자를 구하는 함수를 바로 만들어 두었다. 처음에는 셀프 넘버가 만들어지는 역순을 생각해야하는 건가 싶었는데, 그건 절대 아닌 것 같아서 10000까지의 숫자에서 생성자가 있는 수들을 제거한 뒤에 생성자가 없는 수들을 출력했다. 당연히 시간 초과가 나올 줄 알았는데 정답으로 출력됐다. 분명 더 좋은 풀이가 있을 것..

알게된 점

range를 통한 리스트 선언, 함수를 이용한 문제풀이

profile
안녕하세요. 복습 목적으로 문제 풀이를 올리고 있습니다.

0개의 댓글