Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 55977de

Browse files
day1
0 parents commit 55977de

File tree

4 files changed

+299
-0
lines changed

4 files changed

+299
-0
lines changed

‎day1.go

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"strconv"
6+
)
7+
8+
// SolveDay1 solves the puzzle for day1
9+
func SolveDay1(part int, lines *[]string) {
10+
switch p := part; p {
11+
case 1:
12+
solvePart1(lines)
13+
case 2:
14+
solvePart2(lines)
15+
}
16+
}
17+
18+
func solvePart1(lines *[]string) {
19+
solution := 0
20+
21+
for i, lineI := range *lines {
22+
valueI, _ := strconv.Atoi(lineI)
23+
for _, lineJ := range (*lines)[i+1:] {
24+
valueJ, _ := strconv.Atoi(lineJ)
25+
26+
if valueI+valueJ == 2020 {
27+
solution = valueI * valueJ
28+
break
29+
}
30+
}
31+
}
32+
fmt.Println(solution)
33+
}
34+
35+
func solvePart2(lines *[]string) {
36+
solution := 0
37+
38+
for i, lineI := range *lines {
39+
valueI, _ := strconv.Atoi(lineI)
40+
for j, lineJ := range (*lines)[i+1:] {
41+
valueJ, _ := strconv.Atoi(lineJ)
42+
for _, lineK := range (*lines)[j+1:] {
43+
valueK, _ := strconv.Atoi(lineK)
44+
if valueI+valueJ+valueK == 2020 {
45+
solution = valueI * valueJ * valueK
46+
break
47+
}
48+
}
49+
}
50+
}
51+
fmt.Println(solution)
52+
}

‎inputs/day1.txt

Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
408
2+
1614
3+
1321
4+
1028
5+
1018
6+
2008
7+
1061
8+
1433
9+
1434
10+
1383
11+
1645
12+
1841
13+
1594
14+
1218
15+
1729
16+
1908
17+
1237
18+
1152
19+
1771
20+
1837
21+
1709
22+
1449
23+
1876
24+
1763
25+
1676
26+
1491
27+
1983
28+
1743
29+
1845
30+
999
31+
1478
32+
1929
33+
1819
34+
1385
35+
1308
36+
1703
37+
1246
38+
1831
39+
1964
40+
1469
41+
1977
42+
1488
43+
1698
44+
1640
45+
1513
46+
1136
47+
1794
48+
1685
49+
1802
50+
1520
51+
1807
52+
1654
53+
1547
54+
1917
55+
1792
56+
1949
57+
1268
58+
1626
59+
1493
60+
1534
61+
1700
62+
1844
63+
1146
64+
1049
65+
1811
66+
1627
67+
1630
68+
1755
69+
1887
70+
1290
71+
1446
72+
1968
73+
168
74+
1749
75+
1479
76+
1651
77+
1646
78+
1839
79+
14
80+
1918
81+
1568
82+
1554
83+
1926
84+
1942
85+
1862
86+
1966
87+
1536
88+
1599
89+
1439
90+
1766
91+
1643
92+
1045
93+
1537
94+
1786
95+
1596
96+
1954
97+
1390
98+
1981
99+
1362
100+
1292
101+
1573
102+
1541
103+
1515
104+
1567
105+
1860
106+
1066
107+
1879
108+
1800
109+
1309
110+
1533
111+
1812
112+
1774
113+
1119
114+
1602
115+
1677
116+
482
117+
1054
118+
1424
119+
1631
120+
1829
121+
1550
122+
1636
123+
1604
124+
185
125+
1642
126+
1304
127+
1843
128+
1773
129+
1667
130+
1530
131+
1047
132+
1584
133+
1958
134+
1160
135+
1570
136+
1705
137+
1582
138+
1692
139+
1886
140+
1673
141+
1842
142+
1402
143+
1517
144+
1805
145+
1386
146+
1165
147+
1867
148+
1153
149+
1467
150+
1473
151+
1803
152+
1967
153+
1485
154+
1448
155+
1922
156+
1258
157+
1590
158+
1996
159+
1208
160+
1241
161+
1412
162+
1610
163+
1219
164+
523
165+
1813
166+
1123
167+
1916
168+
1861
169+
1020
170+
1783
171+
1052
172+
1140
173+
1994
174+
1761
175+
747
176+
1885
177+
1675
178+
1957
179+
1476
180+
1382
181+
1878
182+
1099
183+
1882
184+
855
185+
1905
186+
1037
187+
1714
188+
1988
189+
1648
190+
1135
191+
1859
192+
1798
193+
1333
194+
1158
195+
1909
196+
652
197+
1934
198+
1830
199+
1442
200+
1224

‎main.go

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"flag"
6+
"fmt"
7+
"log"
8+
"os"
9+
)
10+
11+
func main() {
12+
13+
var dayFlag = flag.Int("d", 1, "advent of code day")
14+
var partFlag = flag.Int("p", 1, "advent of code day part")
15+
flag.Parse()
16+
17+
inputFilePath := "./inputs/day" + fmt.Sprint(*dayFlag) + ".txt"
18+
var lines []string
19+
readLines(inputFilePath, &lines)
20+
21+
solve(*dayFlag, *partFlag, &lines)
22+
}
23+
24+
func solve(day int, part int, lines *[]string) {
25+
26+
switch d := day; d {
27+
case 1:
28+
SolveDay1(part, lines)
29+
}
30+
}
31+
32+
func readLines(filePath string, lines *[]string) {
33+
file, err := os.Open(filePath)
34+
if err != nil {
35+
fmt.Println("Couldn't read file.")
36+
}
37+
defer file.Close()
38+
39+
scanner := bufio.NewScanner(file)
40+
for scanner.Scan() {
41+
line := scanner.Text()
42+
*lines = append(*lines, line)
43+
}
44+
if err := scanner.Err(); err != nil {
45+
log.Fatal(err)
46+
}
47+
}

‎run

2.21 MB
Binary file not shown.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /