백준 4673 셀프넘버 파이썬
접근방식
- for문을 통해 i(자기자신) + 첫째자리수 + 둘째자리수 + … + len(i) 까지 수행해줍니다.
- num이라는 변수에 해당 결과값을 저장하고 이를 li라는 리스트에 담습니다.
해당 리스트에 담긴 수들은 모두 생성자가 존재한다는 의미이므로 다시 1부터 10,000까지 for문을 돌려서 비교해주면 됩니다.
- 결과적으로 해당 리스트에 저장된 수와 1~10000까지의 수를 비교하여 리스트에 존재하지 않는다면 출력하도록 합니다.
li = [] # 셀프넘버가 아닌 수들을 저장하는 리스트
num = 0 # 임시 계산 변수
for i in range(1, 10000):
num += i
for j in str(num):
num += int(j)
li.append(num)
num = 0 # 해당 길이만큼 더해줬다면 다시 0으로 초기화
for i in range(1, 10000):
if i not in li:
# 리스트에 존재하지 않는다 = 셀프넘버
print(i)
해당 문제는 실버5레벨에 해당하므로 어렵지 않게 풀 수 있는 문제였습니다.
알고리즘도 모든 것과 마찬가지로 꾸준한 연습과 이해를 바탕으로 실력이 향상합니다.
Just do it & Keep steady
댓글남기기