티스토리 뷰
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | count_real=0 def daeching(n): return n[::-1] def isDaeching(n): judgement=False number=(str)(n) length=len(number) for i in range(0,(int)(length/2)): if(number[i]==number[length-(i+1)]): judgement=True else: return False return judgement for i in range(1,10001): count=1 string=(str)(i) string_daeching=daeching(string) number=(int)(string)+(int)(string_daeching) while(not isDaeching(number)): string=(str)(number) string_daeching=daeching(string) number=(int)(string)+(int)(string_daeching) count=count+1 if(count==50): break if(count>=50): count_real=count_real+1 print(count_real) #반환 시간 : 0.1s | cs |
쉬운 문제였다. 반환 시간도 만족스럽고.
대칭수를 만드는 함수, 대칭수임을 판정하는 함수를 각각 정의해주었고
반복문 안에서 어떤 수와 어떤 수의 대칭수를 합한 수가 대칭수가 아니라면 대칭수가 될 때까지 같은 작업을 반복하게 하였고
문제에서 50번의 횟수제한을 주었으므로 50번 반복했을 시 반복문을 탈출하도록 하였다.
'Algorithm > Project Euler' 카테고리의 다른 글
프로젝트 오일러 58번 (0) | 2017.07.08 |
---|---|
프로젝트 오일러 57번 (0) | 2017.07.08 |
프로젝트 오일러 45번 (0) | 2017.07.08 |
프로젝트 오일러 47번 (0) | 2017.07.08 |
프로젝트 오일러 52번 (0) | 2017.07.08 |
댓글