티스토리 뷰

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
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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 30 31
글 보관함