-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDayOne.go
105 lines (72 loc) · 5.61 KB
/
DayOne.go
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package adventofcode2017
import (
"fmt"
"strconv"
)
func getSum(input string) int {
sum := 0
for i :=0 ; i <len(input) ; i++ {
v1,_ := strconv.Atoi(string(input[i]));
v2 := 0
if i < len(input) -1 {
v2,_ = strconv.Atoi(string(input[i+1]))
} else {
v2,_ = strconv.Atoi(string(input[0]))
}
if v1 == v2 {
sum += v1
}
}
return sum
}
func getSumHalfWay(input string) int {
sum := 0
offset := len(input) /2
for i :=0 ; i <len(input) ; i++ {
v1,_ := strconv.Atoi(string(input[i]));
v2 := 0
nextPos := i+offset
if nextPos < len(input) {
v2,_ = strconv.Atoi(string(input[nextPos]))
} else {
nextPos = nextPos - len(input)
v2,_ = strconv.Atoi(string(input[nextPos]))
}
if v1 == v2 {
sum += v1
}
}
return sum
}
func DayOneExample() {
fmt.Println("Day One")
e1 := "1122"
fmt.Println("Sum: ", getSum(e1))
e2 := "1111"
fmt.Println("Sum: ", getSum(e2));
e3 := "1234"
fmt.Println("Sum: ", getSum(e3));
e4 := "91212129"
fmt.Println("Sum: ", getSum(e4));
}
func DayOneExample2() {
fmt.Println("Day One")
e1 := "1212"
fmt.Println("Sum: ", getSumHalfWay(e1))
e2 := "1221"
fmt.Println("Sum: ", getSumHalfWay(e2));
e3 := "123425"
fmt.Println("Sum: ", getSumHalfWay(e3));
e4 := "123123"
fmt.Println("Sum: ", getSumHalfWay(e4));
e5 := "12131415"
fmt.Println("Sum: ", getSumHalfWay(e5));
}
func DayOnePartOne() {
input := "5672987533353956199629683941564528646262567117433461547747793928322958646779832484689174151918261551689221756165598898428736782194511627829355718493723961323272136452517987471351381881946883528248611611258656199812998632682668749683588515362946994415852337196718476219162124978836537348924591957188827929753417884942133844664636969742547717228255739959316351852731598292529837885992781815131876183578461135791315287135243541659853734343376618419952776165544829717676988897684141328138348382882699672957866146524759879236555935723655326743713542931693477824289283542468639522271643257212833248165391957686226311246517978319253977276663825479144321155712866946255992634876158822855382331452649953283788863248192338245943966269197421474555779135168637263279579842885347152287275679811576594376535226167894981226866222987522415785244875882556414956724976341627123557214837873872723618395529735349273241686548287549763993653379539445435319698825465289817663294436458194867278623978745981799283789237555242728291337538498616929817268211698649236646127899982839523784837752863458819965485149812959121884771849954723259365778151788719941888128618552455879369919511319735525621198185634342538848462461833332917986297445388515717463168515123732455576143447454835849565757773325367469763383757677938748319968971312267871619951657267913817242485559771582167295794259441256284168356292785568858527184122231262465193612127961685513913835274823892596923786613299747347259254823531262185328274367529265868856512185135329652635938373266759964119863494798222245536758792389789818646655287856173534479551364115976811459677123592747375296313667253413698823655218254168196162883437389718167743871216373164865426458794239496224858971694877159591215772938396827435289734165853975267521291574436567193473814247981877735223376964125359992555885137816647382139596646856417424617847981855532914872251686719394341764324395254556782277426326331441981737557262581762412544849689472281645835957667217384334435391572985228286537574388834835693416821419655967456137395465649249256572866516984318344482684936625486311718525523265165"
fmt.Println("Sum: ", getSum(input));
}
func DayOnePartTwo() {
input := "5672987533353956199629683941564528646262567117433461547747793928322958646779832484689174151918261551689221756165598898428736782194511627829355718493723961323272136452517987471351381881946883528248611611258656199812998632682668749683588515362946994415852337196718476219162124978836537348924591957188827929753417884942133844664636969742547717228255739959316351852731598292529837885992781815131876183578461135791315287135243541659853734343376618419952776165544829717676988897684141328138348382882699672957866146524759879236555935723655326743713542931693477824289283542468639522271643257212833248165391957686226311246517978319253977276663825479144321155712866946255992634876158822855382331452649953283788863248192338245943966269197421474555779135168637263279579842885347152287275679811576594376535226167894981226866222987522415785244875882556414956724976341627123557214837873872723618395529735349273241686548287549763993653379539445435319698825465289817663294436458194867278623978745981799283789237555242728291337538498616929817268211698649236646127899982839523784837752863458819965485149812959121884771849954723259365778151788719941888128618552455879369919511319735525621198185634342538848462461833332917986297445388515717463168515123732455576143447454835849565757773325367469763383757677938748319968971312267871619951657267913817242485559771582167295794259441256284168356292785568858527184122231262465193612127961685513913835274823892596923786613299747347259254823531262185328274367529265868856512185135329652635938373266759964119863494798222245536758792389789818646655287856173534479551364115976811459677123592747375296313667253413698823655218254168196162883437389718167743871216373164865426458794239496224858971694877159591215772938396827435289734165853975267521291574436567193473814247981877735223376964125359992555885137816647382139596646856417424617847981855532914872251686719394341764324395254556782277426326331441981737557262581762412544849689472281645835957667217384334435391572985228286537574388834835693416821419655967456137395465649249256572866516984318344482684936625486311718525523265165"
fmt.Println("Sum: ", getSumHalfWay(input));
}