티스토리 뷰

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
댓글
최근에 올라온 글
최근에 달린 댓글
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
글 보관함