Created
December 12, 2021 00:56
-
-
Save YurkaninRyan/3133e6c5c0668a1f8ee84991f624afdc to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const numbers = [ | |
38, | |
54, | |
68, | |
93, | |
72, | |
12, | |
33, | |
8, | |
98, | |
88, | |
21, | |
91, | |
53, | |
61, | |
26, | |
36, | |
18, | |
80, | |
73, | |
47, | |
3, | |
5, | |
55, | |
92, | |
67, | |
52, | |
25, | |
40, | |
56, | |
95, | |
9, | |
62, | |
30, | |
31, | |
85, | |
65, | |
14, | |
2, | |
78, | |
75, | |
15, | |
39, | |
87, | |
27, | |
58, | |
42, | |
60, | |
32, | |
41, | |
83, | |
51, | |
77, | |
10, | |
66, | |
70, | |
4, | |
37, | |
6, | |
89, | |
23, | |
16, | |
49, | |
48, | |
63, | |
94, | |
97, | |
86, | |
64, | |
74, | |
82, | |
7, | |
0, | |
11, | |
71, | |
44, | |
43, | |
50, | |
69, | |
45, | |
81, | |
20, | |
28, | |
46, | |
79, | |
90, | |
34, | |
35, | |
96, | |
99, | |
59, | |
1, | |
76, | |
22, | |
24, | |
17, | |
57, | |
13, | |
19, | |
84, | |
29, | |
]; | |
const rows = [ | |
"57 7 8 38 31", | |
"17 96 5 12 18", | |
"58 45 81 89 4", | |
"73 51 93 32 10", | |
"74 50 26 0 24", | |
"", | |
"79 67 21 84 71", | |
"25 22 19 80 13", | |
"10 63 90 78 33", | |
"93 50 89 58 87", | |
"91 7 45 6 41", | |
"", | |
"66 85 4 91 41", | |
"59 69 16 0 90", | |
"35 13 64 61 93", | |
"11 20 29 67 77", | |
"92 75 58 3 34", | |
"", | |
"19 1 34 50 76", | |
"26 75 8 28 20", | |
"96 64 49 77 2", | |
"18 58 62 53 60", | |
"82 99 38 10 83", | |
"", | |
"89 69 97 16 48", | |
"32 3 83 17 33", | |
"82 53 15 50 94", | |
"52 0 86 25 81", | |
"42 38 84 73 76", | |
"", | |
"68 18 44 61 66", | |
"24 21 22 6 41", | |
"48 29 4 64 78", | |
"93 25 88 95 96", | |
"72 49 51 2 5", | |
"", | |
"35 41 59 23 21", | |
" 0 66 34 12 85", | |
"61 26 29 68 5", | |
"28 69 90 2 96", | |
" 1 16 32 24 44", | |
"", | |
"98 73 33 82 18", | |
"51 62 88 67 6", | |
"99 44 53 39 36", | |
"34 90 50 72 43", | |
"64 40 11 26 5", | |
"", | |
"88 8 81 57 99", | |
"61 16 22 50 5", | |
"26 84 85 7 15", | |
"97 27 47 18 21", | |
" 3 78 66 94 58", | |
"", | |
"56 40 68 20 24", | |
"26 98 6 76 89", | |
"61 63 22 99 83", | |
"31 5 32 54 82", | |
"18 23 17 46 13", | |
"", | |
"35 95 67 73 13", | |
"86 33 7 9 43", | |
"44 28 55 32 52", | |
"54 91 84 97 98", | |
"17 49 93 23 56", | |
"", | |
"22 90 61 12 13", | |
"87 4 46 25 88", | |
"70 38 53 80 11", | |
"75 56 96 49 32", | |
" 3 55 43 19 67", | |
"", | |
"40 17 70 76 61", | |
"82 86 37 8 28", | |
"60 48 24 83 53", | |
"57 87 44 92 63", | |
"10 49 88 15 55", | |
"", | |
"36 80 47 46 84", | |
"25 70 2 79 75", | |
"55 5 13 99 45", | |
"54 73 83 59 67", | |
"57 0 69 33 68", | |
"", | |
"51 52 21 44 36", | |
"17 30 15 42 18", | |
" 6 3 47 94 2", | |
"57 77 45 70 90", | |
"29 60 19 9 84", | |
"", | |
"16 12 37 6 27", | |
"86 87 21 70 71", | |
"84 0 11 67 83", | |
" 5 68 33 23 26", | |
"51 43 28 79 49", | |
"", | |
"22 5 53 12 42", | |
"29 81 46 13 88", | |
"80 65 8 62 33", | |
"72 67 34 21 35", | |
"38 77 90 52 44", | |
"", | |
"63 57 52 82 96", | |
"46 11 32 20 58", | |
"35 15 83 1 55", | |
"18 16 73 19 17", | |
"22 88 45 95 47", | |
"", | |
"43 15 7 97 88", | |
"96 52 84 86 49", | |
"80 13 21 28 29", | |
"16 36 98 82 41", | |
"32 10 62 68 24", | |
"", | |
"46 69 8 55 50", | |
"28 21 92 79 73", | |
"19 71 74 53 44", | |
"24 27 10 14 85", | |
" 2 39 58 81 72", | |
"", | |
"68 74 43 62 61", | |
"82 73 37 40 93", | |
"16 7 41 54 96", | |
"10 3 85 70 65", | |
"69 71 94 5 81", | |
"", | |
"17 53 87 80 98", | |
"76 41 30 25 58", | |
"29 14 73 74 43", | |
"20 91 24 70 39", | |
"46 48 51 9 18", | |
"", | |
"20 41 36 81 93", | |
"46 75 33 73 78", | |
"26 16 80 54 90", | |
"87 17 12 67 1", | |
"51 10 39 91 45", | |
"", | |
"76 21 31 3 69", | |
"27 42 97 32 87", | |
"26 22 4 63 38", | |
"46 77 67 80 43", | |
"37 50 59 88 96", | |
"", | |
"17 16 10 68 76", | |
" 2 45 94 29 40", | |
" 1 54 60 66 93", | |
" 0 13 42 39 70", | |
" 6 82 46 74 43", | |
"", | |
"87 95 31 22 94", | |
"86 30 39 56 18", | |
"89 74 23 11 64", | |
"63 48 85 20 49", | |
"27 15 40 83 50", | |
"", | |
"81 48 47 73 95", | |
"40 65 89 69 5", | |
"38 76 85 30 11", | |
"31 61 8 67 62", | |
"41 68 42 78 20", | |
"", | |
"46 85 96 83 20", | |
"94 52 7 97 31", | |
"29 95 99 34 62", | |
" 8 69 6 51 54", | |
"38 59 5 56 55", | |
"", | |
"18 15 10 35 96", | |
"44 66 58 91 9", | |
"12 2 45 98 80", | |
"22 69 37 67 79", | |
"46 36 23 51 75", | |
"", | |
"11 58 64 85 26", | |
"21 43 32 36 65", | |
"94 61 40 68 67", | |
"14 23 6 53 2", | |
"93 9 74 3 90", | |
"", | |
"73 82 46 37 20", | |
"47 75 38 45 54", | |
"76 34 65 44 58", | |
"93 89 27 13 33", | |
"85 67 40 42 17", | |
"", | |
"13 66 2 65 10", | |
"98 4 83 79 92", | |
"22 48 93 6 23", | |
"24 39 17 60 9", | |
"77 49 16 19 35", | |
"", | |
"96 37 88 4 32", | |
"80 89 59 39 63", | |
"67 19 35 10 40", | |
"91 66 47 9 79", | |
"45 21 86 92 30", | |
"", | |
"76 85 37 32 29", | |
"59 41 44 23 93", | |
"86 24 83 81 57", | |
"22 21 82 53 16", | |
"38 99 79 49 30", | |
"", | |
"54 29 64 65 62", | |
"44 59 83 75 56", | |
"11 13 34 12 24", | |
"96 39 31 95 16", | |
"41 38 21 25 60", | |
"", | |
"49 8 3 67 2", | |
"30 81 39 26 33", | |
"83 73 47 32 65", | |
"48 20 75 24 40", | |
"74 28 11 19 96", | |
"", | |
"87 25 49 81 7", | |
"99 34 35 50 86", | |
"18 24 68 4 78", | |
"59 8 71 0 41", | |
"92 54 64 75 46", | |
"", | |
" 2 19 73 29 10", | |
"55 6 43 48 22", | |
"64 14 62 39 97", | |
"99 26 68 25 12", | |
"98 72 45 38 40", | |
"", | |
"59 76 40 37 9", | |
"42 23 1 12 54", | |
"49 51 17 11 34", | |
"74 95 26 78 67", | |
"65 32 98 80 45", | |
"", | |
"50 86 95 29 38", | |
" 6 11 24 10 73", | |
"63 28 30 46 68", | |
"34 9 20 58 77", | |
"88 52 79 89 98", | |
"", | |
"32 20 93 39 80", | |
"67 98 99 4 26", | |
"22 89 97 13 73", | |
"88 11 72 31 78", | |
"76 95 64 43 75", | |
"", | |
"75 23 81 89 90", | |
"98 86 88 38 99", | |
"51 7 65 2 3", | |
"16 59 49 41 87", | |
"57 20 58 72 83", | |
"", | |
"21 81 24 43 12", | |
"55 74 2 90 5", | |
"13 89 59 42 3", | |
"47 66 38 20 62", | |
"61 56 72 84 41", | |
"", | |
"83 68 73 77 66", | |
"96 48 24 7 98", | |
"57 4 86 10 34", | |
"22 46 80 75 49", | |
"89 35 60 79 37", | |
"", | |
"27 50 90 37 28", | |
"81 74 58 39 61", | |
" 8 72 31 85 57", | |
"52 43 9 5 91", | |
"68 86 0 4 89", | |
"", | |
"14 41 70 67 59", | |
"13 94 31 69 65", | |
"76 19 9 79 1", | |
"33 20 53 91 36", | |
"80 50 21 37 85", | |
"", | |
"16 47 62 33 12", | |
"11 74 44 63 60", | |
" 2 23 84 80 42", | |
"14 58 67 81 24", | |
" 8 29 31 91 43", | |
"", | |
"62 86 26 57 74", | |
" 9 46 47 81 39", | |
" 4 99 59 89 3", | |
"20 76 51 70 84", | |
"95 72 43 67 61", | |
"", | |
"75 93 56 15 30", | |
"11 49 97 16 45", | |
"52 91 21 92 62", | |
" 0 74 85 48 63", | |
"28 76 59 79 60", | |
"", | |
"36 18 0 69 10", | |
"34 33 21 5 23", | |
"73 42 50 14 11", | |
"75 26 95 79 51", | |
"76 93 1 43 22", | |
"", | |
"86 64 25 9 54", | |
"67 79 49 1 8", | |
"63 47 60 4 46", | |
"94 97 57 38 30", | |
"91 87 0 68 15", | |
"", | |
"94 46 6 69 9", | |
"18 49 43 30 31", | |
"79 35 76 45 92", | |
"67 89 82 2 57", | |
"65 21 24 81 52", | |
"", | |
" 5 58 43 37 61", | |
"65 67 54 15 50", | |
"69 75 14 17 96", | |
"23 95 71 33 9", | |
"68 82 10 3 29", | |
"", | |
"56 43 88 35 82", | |
"44 14 64 60 23", | |
"33 5 96 86 47", | |
"70 74 27 4 1", | |
"51 71 95 59 11", | |
"", | |
"46 14 44 6 19", | |
"54 81 59 31 28", | |
" 7 67 73 23 86", | |
"25 91 57 43 92", | |
"65 76 80 47 77", | |
"", | |
" 3 39 70 90 23", | |
"64 77 33 83 22", | |
" 6 36 81 80 68", | |
"85 45 72 53 42", | |
" 7 19 88 13 9", | |
"", | |
"88 3 72 6 29", | |
"33 13 1 85 68", | |
"28 32 78 8 63", | |
"15 99 35 80 41", | |
"61 50 43 53 39", | |
"", | |
"22 88 19 86 54", | |
"78 3 70 65 85", | |
"18 12 21 14 17", | |
" 5 48 64 81 71", | |
"89 91 55 30 87", | |
"", | |
"35 82 37 42 25", | |
"44 53 12 2 73", | |
"18 24 0 75 51", | |
"34 26 54 52 86", | |
"56 64 31 57 80", | |
"", | |
"45 97 83 15 5", | |
"40 77 1 53 84", | |
"67 44 52 37 20", | |
"36 64 33 82 90", | |
"49 22 6 65 99", | |
"", | |
"18 69 23 78 55", | |
"45 4 31 54 44", | |
"16 97 13 81 86", | |
"77 87 91 53 33", | |
" 1 84 83 75 40", | |
"", | |
"95 46 89 7 38", | |
"83 32 99 44 20", | |
" 6 57 37 34 48", | |
"69 5 84 29 54", | |
"62 27 13 80 53", | |
"", | |
"45 92 59 71 83", | |
"52 75 42 46 86", | |
"76 33 50 80 69", | |
"36 89 90 3 31", | |
" 7 5 48 38 53", | |
"", | |
"86 80 77 18 87", | |
"79 93 52 17 20", | |
"30 68 48 12 91", | |
"25 98 13 9 47", | |
"45 73 97 15 59", | |
"", | |
"93 60 34 18 25", | |
"38 80 81 91 40", | |
"43 87 20 79 7", | |
"70 68 6 24 23", | |
"46 97 32 78 67", | |
"", | |
" 9 6 28 17 42", | |
" 2 86 84 90 13", | |
"91 58 16 37 76", | |
"15 3 45 51 4", | |
"64 99 41 59 39", | |
"", | |
"44 3 85 80 93", | |
" 0 43 90 40 89", | |
"82 91 55 79 75", | |
"30 5 68 50 1", | |
"37 24 59 62 66", | |
"", | |
"38 55 21 45 1", | |
"23 14 95 25 22", | |
"84 10 39 9 0", | |
"17 15 58 70 49", | |
"62 44 77 65 88", | |
"", | |
" 8 62 25 75 39", | |
"20 95 65 11 32", | |
" 5 92 15 86 66", | |
"64 34 60 7 85", | |
"10 76 6 53 61", | |
"", | |
"71 61 62 25 35", | |
"23 30 37 14 9", | |
"99 98 52 51 19", | |
"77 57 17 72 85", | |
"33 91 31 43 67", | |
"", | |
"76 66 39 36 44", | |
"49 97 93 33 52", | |
"13 70 21 17 32", | |
"71 98 80 19 60", | |
"73 15 99 74 9", | |
"", | |
"41 8 33 29 87", | |
"42 86 66 31 50", | |
"45 60 83 81 21", | |
"36 4 98 43 0", | |
"49 76 18 90 16", | |
"", | |
"83 53 34 39 58", | |
"91 68 17 62 4", | |
" 2 76 44 31 35", | |
"14 61 49 84 92", | |
"73 6 86 27 65", | |
"", | |
"56 70 47 60 97", | |
"35 89 26 99 59", | |
"67 23 27 74 65", | |
"61 62 15 18 45", | |
"54 93 0 9 71", | |
"", | |
"11 24 97 15 30", | |
"46 74 17 48 43", | |
"16 64 72 60 37", | |
"63 90 41 91 66", | |
"25 95 1 54 49", | |
"", | |
"87 67 27 26 38", | |
"63 44 65 25 81", | |
" 1 66 96 62 17", | |
"82 2 58 4 86", | |
"61 64 54 24 90", | |
"", | |
"72 94 69 85 43", | |
"38 11 93 39 13", | |
"86 92 12 42 75", | |
" 6 89 58 88 52", | |
"79 19 20 55 14", | |
"", | |
"77 93 58 6 52", | |
"27 48 29 60 71", | |
"87 24 25 54 49", | |
"53 38 90 51 80", | |
"57 50 18 1 13", | |
"", | |
"85 84 54 2 51", | |
"33 41 0 38 80", | |
" 5 62 1 28 96", | |
"17 88 64 26 90", | |
"78 91 56 34 74", | |
"", | |
"83 14 82 6 55", | |
"30 13 99 57 39", | |
"93 73 37 19 8", | |
"29 49 76 22 92", | |
"69 66 9 60 53", | |
"", | |
"51 78 52 72 79", | |
"42 55 74 88 44", | |
"90 75 65 87 69", | |
"22 35 64 36 86", | |
"63 41 19 59 49", | |
"", | |
"49 86 81 23 12", | |
"93 16 9 8 95", | |
"68 33 4 82 61", | |
"45 28 85 87 38", | |
"35 70 63 18 52", | |
"", | |
"63 93 38 34 61", | |
"75 21 86 42 25", | |
"52 85 99 24 36", | |
"41 11 79 54 47", | |
"44 84 65 28 89", | |
"", | |
"91 37 30 39 59", | |
" 7 94 90 38 40", | |
"72 21 75 31 61", | |
"68 42 34 20 8", | |
" 3 16 76 44 57", | |
"", | |
"32 55 36 81 42", | |
"21 75 68 28 65", | |
"46 70 29 54 64", | |
"66 89 96 25 43", | |
"79 76 41 77 71", | |
"", | |
"41 29 60 74 34", | |
"84 49 83 72 92", | |
"22 6 21 17 94", | |
"15 44 62 28 2", | |
"25 93 64 1 42", | |
"", | |
"68 76 23 62 10", | |
"36 87 15 12 57", | |
"79 46 18 83 11", | |
"48 81 58 52 28", | |
"72 40 64 55 21", | |
"", | |
"25 51 42 63 41", | |
" 0 72 92 23 13", | |
"65 1 69 33 2", | |
"78 27 95 61 55", | |
"30 54 48 3 57", | |
"", | |
"50 40 58 66 59", | |
"84 79 64 75 44", | |
"88 93 41 25 97", | |
"19 86 37 91 81", | |
"10 26 94 77 34", | |
"", | |
"76 44 11 16 60", | |
"19 92 91 58 50", | |
"97 5 46 4 52", | |
"87 42 65 75 15", | |
"12 2 54 27 86", | |
"", | |
"77 38 51 29 89", | |
" 7 76 54 48 44", | |
"88 50 2 5 53", | |
"12 70 26 57 74", | |
"31 19 18 34 47", | |
"", | |
"35 99 86 96 62", | |
"61 97 71 70 66", | |
"49 55 36 76 3", | |
"94 23 31 91 26", | |
"80 8 20 95 15", | |
"", | |
" 4 96 40 36 12", | |
"87 75 38 30 11", | |
"69 29 23 85 91", | |
"49 5 14 57 24", | |
"88 20 99 78 65", | |
"", | |
"34 65 71 79 67", | |
"28 1 33 47 11", | |
"15 86 84 83 55", | |
"35 10 19 63 23", | |
"58 66 45 77 26", | |
"", | |
"74 13 25 39 8", | |
"46 47 77 37 0", | |
"60 1 81 42 18", | |
" 5 51 78 30 4", | |
"36 12 10 32 82", | |
"", | |
"51 83 58 10 56", | |
"28 18 43 99 14", | |
" 3 57 30 49 88", | |
"20 68 76 73 82", | |
" 1 85 77 22 47", | |
"", | |
"50 12 11 97 83", | |
"40 10 49 81 63", | |
"43 15 91 3 2", | |
"52 20 53 89 33", | |
"42 94 59 78 46", | |
"", | |
"19 63 86 82 9", | |
"69 13 27 88 37", | |
"45 51 79 11 8", | |
" 2 29 41 84 73", | |
"76 24 78 96 38", | |
"", | |
"15 19 88 95 54", | |
"28 94 96 27 26", | |
" 8 82 68 6 71", | |
"33 9 99 62 63", | |
"38 83 41 14 79", | |
"", | |
"67 57 2 21 19", | |
"11 79 74 45 95", | |
"42 90 68 47 62", | |
"80 61 1 0 39", | |
"43 76 40 27 66", | |
]; | |
const boards = rows.reduce((acc, curr, i) => { | |
if (i === 0) { | |
return [[curr.trim().replace(" ", " ").split(" ").map(Number)]]; | |
} | |
if (curr === "") { | |
return [...acc, []]; | |
} | |
const boardBeingGenerated = acc[acc.length - 1]; | |
const boardsClone = [...acc]; | |
boardsClone[acc.length - 1] = [ | |
...boardBeingGenerated, | |
curr.trim().replace(" ", " ").split(" ").map(Number), | |
]; | |
return boardsClone; | |
}, []); | |
function checkRowsOfBoardForMatch(numbers, board) { | |
return board.some((row) => row.every((number) => numbers.includes(number))); | |
} | |
function checkColumnsOfBoardForMatch(numbers, board) { | |
const columns = board.map((row, i, board) => [ | |
board[0][i], | |
board[1][i], | |
board[2][i], | |
board[3][i], | |
board[4][i], | |
]); | |
return columns.some((column) => | |
column.every((number) => numbers.includes(number)) | |
); | |
} | |
function getUncalledNumbersFromBoard(numbers, board) { | |
return board.flatMap((row) => | |
row.filter((number) => !numbers.includes(number)) | |
); | |
} | |
console.log( | |
checkRowsOfBoardForMatch([43, 76, 40, 27, 66], boards[boards.length - 1]) | |
); | |
console.log( | |
checkColumnsOfBoardForMatch([67, 11, 42, 80, 43], boards[boards.length - 1]) | |
); | |
const visibleNumbers = []; | |
const done = []; | |
numbers.some((number) => { | |
visibleNumbers.push(number); | |
boards.forEach((board, i) => { | |
if (done.includes(i)) { | |
return; | |
} | |
const hasRowMatch = checkRowsOfBoardForMatch(visibleNumbers, board); | |
const hasColumnMatch = checkColumnsOfBoardForMatch(visibleNumbers, board); | |
if (hasRowMatch || hasColumnMatch) { | |
unusedNumbers = getUncalledNumbersFromBoard(visibleNumbers, board); | |
const sum = unusedNumbers.reduce((acc, curr) => { | |
return acc + curr; | |
}, 0); | |
console.log(sum * visibleNumbers[visibleNumbers.length -1]); | |
done.push(i); | |
console.log(board) | |
} | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment