728x90
반응형
- 문제
- 나의 풀이
not_self_number = list()
for i in range(1, 10001):
number = [int(num) for num in str(i)]
not_self_number.append(sum(number) + i)
if i not in not_self_number:
print(i)
나는 각 자릿수를 더하는 과정을 string으로 변환하여 for문으로 처리하였다.
그리고 self_number가 아닌 숫자들을 담을 list를 만들어서 생성자를 담아준다.
최종적으로 생성자가 없는 셀프 넘버를 출력한다.
- 남의 풀이
def self_number(num):
self_num = num
while num != 0:
self_num += num%10 # 오른쪽 끝 숫자를 더함
num //= 10 # 오른쪽 끝 숫자를 삭제
return self_num
result = []
for i in list(range(1,10001)):
result.append(self_number(i)) # 셀프 넘버를 저장
if i not in result: # 셀프 넘버로 넘어온 값이 1~i 숫자중에 없는지 확인
print(i)
나는 각 자리수를 string으로 처리하였다.
해당 풀이는 일의 자리부터 십의 자리, 백의 자리 순으로 처리하는 방법이다.
728x90
'자료구조 및 알고리즘 > 백준' 카테고리의 다른 글
[python] 2748. 피보나치 수 2 (0) | 2023.07.28 |
---|---|
[python] 1065. 한수 (0) | 2023.07.28 |
[python] 1436. 영화감독 숌 (0) | 2023.07.27 |
[python] 19532. 수학은 비대면강의입니다. (0) | 2023.07.26 |
[python] 2231. 분해합 (0) | 2023.07.25 |