티스토리 뷰

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <stdio.h>
double Function(int arr[][20]) {
    double result1 = 0, result2 = 0, result3 = 0, result4 = 0;
    for (int i = 0; i < 20++i) {
        for (int j = 0; j < 17++j) {
            double temp = arr[i][j] * arr[i][j + 1* arr[i][j + 2* arr[i][j + 3];
            if (result1 < temp)
                result1 = temp;
        }
    }
    for (int i = 0; i < 17++i) {
        for (int j = 0; j < 20++j) {
            double temp = arr[i][j] * arr[i + 1][j] * arr[i + 2][j] * arr[i + 3][j];
            if (result2 < temp)
                result2 = temp;
        }
    }
    for (int i = 0; i < 17++i) {
        for (int j = 0; j < 17++j) {
            double temp = arr[i][j] * arr[i + 1][j + 1* arr[i + 2][j + 2* arr[i + 3][j + 3];
            if (result3 < temp)
                result3 = temp;
        }
    }
    for (int i = 0; i <17++i) {
        for (int j = 0; j < 17++j) {
            double temp = arr[i][j + 3* arr[i + 1][j + 2* arr[i + 2][j + 1* arr[i + 3][j];
            if (result4 < temp)
                result4 = temp;
        }
    }
    double sort[4= { result1,result2,result3,result4 };
    for (int i = 0; i < 3++i) {
        for (int j = i + 1; j < 4++j) {
            if (sort[i] < sort[j]) {
                double temp = sort[j];
                sort[j] = sort[i];
                sort[i] = temp;
            }
        }
    }
 
    return sort[0];
}
int main() {
 
    int arr[20][20= {
        { 8 ,2 ,22 ,97 ,38 ,15 ,0 ,40 ,0 ,75 ,4 ,5 ,7 ,78 ,52 ,12 ,50 ,77 ,91 ,8 },
        { 49 ,49 ,99 ,40 ,17 ,81 ,18 ,57 ,60 ,87 ,17 ,40 ,98 ,43 ,69 ,48 ,4 ,56 ,62 ,0 },
        { 81 ,49 ,31 ,73 ,55 ,79 ,14 ,29 ,93 ,71 ,40 ,67 ,53 ,88 ,30 ,3 ,49 ,13 ,36 ,65 },
        { 52 ,70 ,95 ,23 ,4 ,60 ,11 ,42 ,69 ,24 ,68 ,56 ,1 ,32 ,56 ,71 ,37 ,2 ,36 ,91 },
        { 22 ,31 ,16 ,71 ,51 ,67 ,63 ,89 ,41 ,92 ,36 ,54 ,22 ,40 ,40 ,28 ,66 ,33 ,13 ,80 },
        { 24 ,47 ,32 ,60 ,99 ,3 ,45 ,2 ,44 ,75 ,33 ,53 ,78 ,36 ,84 ,20 ,35 ,17 ,12 ,50 },
        { 32 ,98 ,81 ,28 ,64 ,23 ,67 ,10 ,26 ,38 ,40 ,67 ,59 ,54 ,70 ,66 ,18 ,38 ,64 ,70 },
        { 67 ,26 ,20 ,68 ,2 ,62 ,12 ,20 ,95 ,63 ,94 ,39 ,63 ,8 ,40 ,91 ,66 ,49 ,94 ,21 },
        { 24 ,55 ,58 ,5 ,66 ,73 ,99 ,26 ,97 ,17 ,78 ,78 ,96 ,83 ,14 ,88 ,34 ,89 ,63 ,72 },
        { 21 ,36 ,23 ,9 ,75 ,0 ,76 ,44 ,20 ,45 ,35 ,14 ,0 ,61 ,33 ,97 ,34 ,31 ,33 ,95 },
        { 78 ,17 ,53 ,28 ,22 ,75 ,31 ,67 ,15 ,94 ,03 ,80 ,4 ,62 ,16 ,14 ,9 ,53 ,56 ,92 },
        { 16 ,39 ,5 ,42 ,96 ,35 ,31 ,47 ,55 ,58 ,88 ,24 ,0 ,17 ,54 ,24 ,36 ,29 ,85 ,57 },
        { 86 ,56 ,0 ,48 ,35 ,71 ,89 ,7 ,5 ,44 ,44 ,37 ,44 ,60 ,21 ,58 ,51 ,54 ,17 ,58 },
        { 19 ,80 ,81 ,68 ,5 ,94 ,47 ,69 ,28 ,73 ,92 ,13 ,86 ,52 ,17 ,77 ,4 ,89 ,55 ,40 },
        { 4 ,52 ,8 ,83 ,97 ,35 ,99 ,16 ,7 ,97 ,57 ,32 ,16 ,26 ,26 ,79 ,33 ,27 ,98 ,66 },
        { 88 ,36 ,68 ,87 ,57 ,62 ,20 ,72 ,03 ,46 ,33 ,67 ,46 ,55 ,12 ,32 ,63 ,93 ,53 ,69 },
        { 4 ,42 ,16 ,73 ,38 ,25 ,39 ,11 ,24 ,94 ,72 ,18 ,8 ,46 ,29 ,32 ,40 ,62 ,76 ,36 },
        { 20 ,69 ,36 ,41 ,72 ,30 ,23 ,88 ,34 ,62 ,99 ,69 ,82 ,67 ,59 ,85 ,74 ,4 ,36 ,16 },
        { 20 ,73 ,35 ,29 ,78 ,31 ,90 ,1 ,74 ,31 ,49 ,71 ,48 ,86 ,81 ,16 ,23 ,57 ,5 ,54 },
        { 1 ,70 ,54 ,71 ,83 ,51 ,54 ,69 ,16 ,92 ,33 ,48 ,61 ,43 ,52 ,1 ,89 ,19 ,67 ,48 } };
    printf("%lf\n", Function(arr));
    return 0;
}
cs






제시된 수를 배열에 저장하는 것은

strtok를 사용하면 쉽게 될 것 같지만

사용법을 확실하게 숙지하지 못하였기 때문에

일일히 쉼표 붙이고 괄호 붙이고 해서 나눴다.


그 외 코드는 어렵지 않다.


4번째 for문 알고리즘에서 잘 안됐는데

알고보니 3번째 for문과 같은 결과를 내는 코드였다...

이런 실수는 하지 않도록 할 것.


사실 double도 int로 쓰면 메모리 관리 차원에서 더 나을 것.

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

프로젝트 오일러 2번  (0) 2017.05.19
프로젝트 오일러 20번  (0) 2017.05.19
프로젝트 오일러 16번  (0) 2017.05.18
프로젝트 오일러 14번  (0) 2017.05.17
프로젝트 오일러 3번  (0) 2017.05.17
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
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
글 보관함