Skip to content

Commit c6461df

Browse files
committed
day1 done
1 parent 4c844bd commit c6461df

File tree

5 files changed

+314
-0
lines changed

5 files changed

+314
-0
lines changed

day1/input.txt

Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
1028
2+
1987
3+
1938
4+
1136
5+
1503
6+
1456
7+
1107
8+
1535
9+
1946
10+
1986
11+
855
12+
1587
13+
1632
14+
1548
15+
1384
16+
1894
17+
1092
18+
1876
19+
1914
20+
1974
21+
1662
22+
1608
23+
2004
24+
1464
25+
1557
26+
1485
27+
1267
28+
1582
29+
1307
30+
1903
31+
1102
32+
1578
33+
1421
34+
1184
35+
1290
36+
1786
37+
1295
38+
1930
39+
1131
40+
1802
41+
1685
42+
1735
43+
1498
44+
1052
45+
1688
46+
990
47+
1805
48+
1768
49+
1922
50+
1781
51+
1897
52+
1545
53+
1591
54+
1393
55+
1186
56+
149
57+
1619
58+
1813
59+
1708
60+
1119
61+
1214
62+
1705
63+
1942
64+
1684
65+
1460
66+
1123
67+
1439
68+
1672
69+
1980
70+
1337
71+
1731
72+
1203
73+
1481
74+
2009
75+
1110
76+
1116
77+
1443
78+
1957
79+
1891
80+
1595
81+
1951
82+
1883
83+
1733
84+
1697
85+
1321
86+
1689
87+
1103
88+
1300
89+
1262
90+
1190
91+
1667
92+
1843
93+
1544
94+
1877
95+
1718
96+
1866
97+
1929
98+
1169
99+
1693
100+
1518
101+
1375
102+
1477
103+
1222
104+
1791
105+
1612
106+
1373
107+
1253
108+
1087
109+
1959
110+
1970
111+
1112
112+
1778
113+
1412
114+
1127
115+
1767
116+
1091
117+
1653
118+
1609
119+
1810
120+
1912
121+
1917
122+
935
123+
1499
124+
1878
125+
1452
126+
1935
127+
1937
128+
968
129+
1905
130+
1077
131+
1701
132+
1789
133+
1506
134+
1451
135+
1125
136+
1686
137+
1117
138+
1991
139+
1215
140+
1776
141+
1976
142+
846
143+
1923
144+
1945
145+
1888
146+
1193
147+
1146
148+
1583
149+
1315
150+
1372
151+
1963
152+
1491
153+
1777
154+
1799
155+
1363
156+
1579
157+
1367
158+
1863
159+
1983
160+
1679
161+
1944
162+
1654
163+
1953
164+
1297
165+
530
166+
1502
167+
1738
168+
1934
169+
1185
170+
1998
171+
1764
172+
1856
173+
1207
174+
1181
175+
1494
176+
1676
177+
1900
178+
1057
179+
339
180+
1994
181+
2006
182+
1536
183+
2007
184+
644
185+
1173
186+
1692
187+
1493
188+
1756
189+
1916
190+
1890
191+
1908
192+
1887
193+
1241
194+
1447
195+
1997
196+
1967
197+
1098
198+
1287
199+
1392
200+
1932

day1/main.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"flag"
6+
"log"
7+
"os"
8+
"strconv"
9+
)
10+
11+
func main() {
12+
13+
var version = flag.Int("version", 1, "first or second part of the assignment")
14+
15+
flag.Parse()
16+
17+
file, err := os.Open("input.txt")
18+
if err != nil {
19+
log.Fatal(err)
20+
}
21+
defer file.Close()
22+
23+
scanner := bufio.NewScanner(file)
24+
25+
inputs := []int{}
26+
27+
for scanner.Scan() {
28+
i1, err := strconv.Atoi(scanner.Text())
29+
if err != nil {
30+
log.Fatal(err)
31+
}
32+
inputs = append(inputs, i1)
33+
}
34+
35+
if err := scanner.Err(); err != nil {
36+
log.Fatal(err)
37+
}
38+
if *version == 1 {
39+
log.Printf("Result: %d 🎄", calculateAccouting(inputs))
40+
} else {
41+
log.Printf("Result: %d 🎄", calculateAccoutingVersion2(inputs))
42+
}
43+
}
44+
45+
func calculateAccouting(input []int) int {
46+
47+
for _, i := range input {
48+
for _, i2 := range input {
49+
if i+i2 == 2020 {
50+
return i * i2
51+
}
52+
}
53+
}
54+
return 0
55+
}
56+
57+
func calculateAccoutingVersion2(input []int) int {
58+
59+
for _, i := range input {
60+
for _, i2 := range input {
61+
for _, i3 := range input {
62+
if i+i2+i3 == 2020 {
63+
return i * i2 * i3
64+
}
65+
}
66+
}
67+
}
68+
return 0
69+
}

day1/main_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package main
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/assert"
7+
)
8+
9+
func TestDay1(t *testing.T) {
10+
11+
sample := []int{1721, 979, 366, 299, 675, 1456}
12+
expected := 514579
13+
14+
result := calculateAccouting(sample)
15+
16+
assert.Equal(t, result, expected)
17+
18+
}
19+
20+
func TestDay1Version2(t *testing.T) {
21+
22+
sample := []int{1721, 979, 366, 299, 675, 1456}
23+
expected := 241861950
24+
25+
result := calculateAccoutingVersion2(sample)
26+
27+
assert.Equal(t, result, expected)
28+
29+
}

go.mod

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module github.com/tazer/adventofcode2020
2+
3+
go 1.15
4+
5+
require github.com/stretchr/testify v1.6.1

go.sum

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8=
2+
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5+
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
6+
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
7+
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
8+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
9+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
10+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
11+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

0 commit comments

Comments
 (0)