티스토리 뷰

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
import math
sum=0
for a in range(0,1000001):
    numberDecimal=str(a)
    numberBinary=str(bin(a))[2:len(str(bin(a)))]
    decimal_length=len(numberDecimal)
    binary_length=len(numberBinary)
    decimal_count=math.ceil(decimal_length/2)
    binary_count=math.ceil(binary_length/2)
    index_decimal_a=0
    index_decimal_b=decimal_length-1
    index_binary_a=0
    index_binary_b=binary_length-1
    decimal_judgement=0
    binary_judgement=0
    for aa in range(0,decimal_count):
        if(numberDecimal[index_decimal_a]==numberDecimal[index_decimal_b]):
            decimal_judgement=decimal_judgement+1
        index_decimal_a=index_decimal_a+1
        index_decimal_b=index_decimal_b-1
    for bb in range(0,binary_count):
        if(numberBinary[index_binary_a]==numberBinary[index_binary_b]):
            binary_judgement=binary_judgement+1
        index_binary_a=index_binary_a+1
        index_binary_b=index_binary_b-1
    if(decimal_judgement==decimal_count and binary_judgement==binary_count):
        sum=sum+int(numberDecimal)
print(sum)
cs

 

 

 

for문을 위한 변수를 각각 10진수와 2진수로 표현한 것을 문자열로 담은 후

 

각각의 문자열 길이, 그리고 그 길이를 조작해서 구할 수 있는 index 등의 값을 이용하여

 

답을 구하였다.

'Algorithm > Project Euler' 카테고리의 다른 글

프로젝트 오일러 22번  (0) 2017.07.01
프로젝트 오일러 39번  (0) 2017.07.01
프로젝트 오일러 32번  (0) 2017.06.29
프로젝트 오일러 29번  (0) 2017.06.29
프로젝트 오일러 27번  (0) 2017.06.29
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/03   »
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
글 보관함