티스토리 뷰
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 | arr=[] number=1 sum=0 for i in range(1,502): arr_temp=[] count=((i*2-1)-1)*4 if(count==0): count=1 for j in range(0,count): arr_temp.append(number) number=number+1 arr.append(arr_temp) for i in range(1,502): matrix=i*2-1 if(matrix==1): sum=sum+1 continue index1=matrix-2 index2=index1+matrix-1 index3=index2+matrix-1 index4=index3+matrix-1 sum=sum+arr[i-1][index1] sum=sum+arr[i-1][index2] sum=sum+arr[i-1][index3] sum=sum+arr[i-1][index4] print(sum) #반환 시간 : 0.2s | cs |
문제 자체는 배열을 활용해서 값을 넣고 풀어야할 것처럼 생겼는데
귀찮아서 (사실 잘 모르겠어서)
변수를 어찌어찌 잘 조작해서 풀었다.
노트에 경우들을 좀 적어놓고 생각해보니
인덱스는 네 개 뿐이고 그 차이 또한 등차수열의 관계가 있는 등
수학적인 관계가 많이 보여서
이를 잘 활용해 보았다.
이 코드를 다음에 보고 설명해보라고 하면 잘 못할 것 같다.
'Algorithm > Project Euler' 카테고리의 다른 글
프로젝트 오일러 24번 (0) | 2017.07.05 |
---|---|
프로젝트 오일러 35번 (0) | 2017.07.04 |
프로젝트 오일러 56번 (0) | 2017.07.03 |
프로젝트 오일러 25번 (0) | 2017.07.03 |
프로젝트 오일러 1페이지 클리어! (0) | 2017.07.03 |
댓글