티스토리 뷰

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
import math
#a,b,c는 자리수를 나타냄
first=0
second=0
third=0
sumResult=0
arr=[]
for a in range(1,8):
    for b in range(1,8):
        for c in range(1,8):
            if(a+b+c!=9):
                continue
            for i in range(int(math.pow(10,a-1)),int(math.pow(10,a))):
                for j in range(int(math.pow(10,b-1)),int(math.pow(10,b))):
                    result=i*j
                    result_length=len(str(i*j))
                    if(a+b+result_length!=9):
                        break
                    string=str(i)+str(j)+str(result)
                    if((string.find('1')!=-1 and string.find('2')!=-1 and 
string.find('3')!=-1 and string.find('4')!=-1 and 
string.find('5')!=-1 and string.find('6')!=-1 and 
string.find('7')!=-1 and string.find('8')!=-1 and 
string.find('9')!=-1)) and string.find('0')==-1:
                        arr.append(result)
                        print(i,j,result)
arr=list(set(arr))
for i in range(0,len(arr)):
    sumResult=sumResult+arr[i]
print(sumResult)
cs

 

 

 

이전에 푼 팬디지털 문제를 참고하여 비교적 쉽게 풀 수 있었다.

 

 

a, b, c를 자리수를 나타내는 변수로 지정하고,

 

math.pow()를 이용해 자리수에 대응하는 숫자를 생성하였다.

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

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