티스토리 뷰
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 |
댓글