[BOJ] 4673 셀프 넘버

[BOJ] 4673 셀프 넘버

문제 링크

이 문제는 셀프넘버 함수를 만들고 활용하는 문제인데, 문제 취지에 맞게 활용했는지 의문이다.

1부터 10000까지의 숫자를 함수 인자로 받고, 반환값으로 공식에 따라 셀프 넘버를 반환한다.

1부터 10000까지 셀프 넘버 함수에 대입하고 반환되는 결과값을 배열 array에 각각 append했다. array에 담긴 값들은 생성자로부터 생성된 수이다.

즉 생성자가 없는 수를 제외한 모든 수가 array에 담겼기 떄문에 array에 없는 값은 생성자가 없는 수가 된다.

나의 풀이

def d(num):
  ans = num
  for i in range(len(str(num))):
    ans += int(str(num)[i])

  return ans


array = []

for i in range(1, 10001):
  array.append(d(i))

for i in range(1, 10001):
  if(i not in array):
    print(i)



© 2021. All rights reserved.