티스토리 뷰
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | number=1 sum_result=0 sum=0 for a in range(1,100): for b in range(1,100): for pow in range(0,b): number=number*a length=len(str(number)) for index in range(0,length): sum=sum+(int)(str(number)[index]) if(sum_result<sum): sum_result=sum number=1 sum=0 print(sum_result) #반환 시간 : 1.5s | cs |
각 거듭제곱수의 경우마다 문자열로 바꾼 후 길이를 구하고
그에 맞추어 각 자리수를 더한 값을 비교하였다.
실수로 length를 구하는 줄을 for문 안에 넣었는데
넣을 때와 넣지 않을 때의 반환 시간을 비교해 보았을 때
커서 반 번 깜빡이는 정도의 차이를 보였다.
사소한 실수가 속도 면에서 큰 차이를 보이게 할 수 있음을 다시금 깨달았다.
'Algorithm > Project Euler' 카테고리의 다른 글
프로젝트 오일러 35번 (0) | 2017.07.04 |
---|---|
프로젝트 오일러 28번 (0) | 2017.07.04 |
프로젝트 오일러 25번 (0) | 2017.07.03 |
프로젝트 오일러 1페이지 클리어! (0) | 2017.07.03 |
프로젝트 오일러 18번 (0) | 2017.07.03 |
댓글