day 1
This commit is contained in:
commit
decaf69ba5
9
01/01.exs
Normal file
9
01/01.exs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
list = File.read!("input.txt")
|
||||||
|
|> String.split("\n")
|
||||||
|
|> Enum.map(&String.to_integer/1)
|
||||||
|
# pattern match binary tuple from list values
|
||||||
|
[{a, b} | _] = for x <- list, y <- list, x + y == 2020, do: {x, y}
|
||||||
|
IO.puts("Part 1: #{a * b}")
|
||||||
|
# same thing but with 3-ary tuple
|
||||||
|
[{a, b, c} | _] = for x <- list, y <- list, z <- list, x + y + z == 2020, do: {x, y, z}
|
||||||
|
IO.puts("Part 2: #{a * b * c}")
|
23
01/01.py
Normal file
23
01/01.py
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
def part1():
|
||||||
|
with open('input.txt','r') as f:
|
||||||
|
expenses = [int(x) for x in f]
|
||||||
|
for a in expenses:
|
||||||
|
for b in expenses:
|
||||||
|
if a + b == 2020:
|
||||||
|
return a*b
|
||||||
|
|
||||||
|
def part2():
|
||||||
|
with open('input.txt','r') as f:
|
||||||
|
expenses = [int(x) for x in f]
|
||||||
|
for a in expenses:
|
||||||
|
for b in expenses:
|
||||||
|
for c in expenses:
|
||||||
|
if a + b + c == 2020:
|
||||||
|
return a*b*c
|
||||||
|
|
||||||
|
def main():
|
||||||
|
print(f'Part 1: {part1()}')
|
||||||
|
print(f'Part 2: {part2()}')
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
13
01/01.rb
Normal file
13
01/01.rb
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
def find_product_of(n)
|
||||||
|
puts File
|
||||||
|
.readlines("input.txt") # read input lines as array entries
|
||||||
|
.map(&:to_i) # convert each array entry to integer
|
||||||
|
.permutation(n) # create Enumerable with all permutations of n entries
|
||||||
|
.find { |array| array.sum == 2020} # find a permutation that sums to 2020
|
||||||
|
.inject(:*) # get the product of that array
|
||||||
|
end
|
||||||
|
|
||||||
|
puts "Part 1: "
|
||||||
|
find_product_of(2)
|
||||||
|
puts "Part 2: "
|
||||||
|
find_product_of(3)
|
200
01/input.txt
Normal file
200
01/input.txt
Normal file
|
@ -0,0 +1,200 @@
|
||||||
|
2004
|
||||||
|
1823
|
||||||
|
1628
|
||||||
|
1867
|
||||||
|
1073
|
||||||
|
1951
|
||||||
|
1909
|
||||||
|
1761
|
||||||
|
1093
|
||||||
|
1992
|
||||||
|
1986
|
||||||
|
1106
|
||||||
|
1537
|
||||||
|
1905
|
||||||
|
1233
|
||||||
|
1961
|
||||||
|
1760
|
||||||
|
1562
|
||||||
|
1781
|
||||||
|
1329
|
||||||
|
1272
|
||||||
|
1660
|
||||||
|
1367
|
||||||
|
1248
|
||||||
|
1697
|
||||||
|
1515
|
||||||
|
1470
|
||||||
|
1980
|
||||||
|
1884
|
||||||
|
1784
|
||||||
|
1966
|
||||||
|
1778
|
||||||
|
1426
|
||||||
|
1255
|
||||||
|
1089
|
||||||
|
1748
|
||||||
|
1253
|
||||||
|
1870
|
||||||
|
1651
|
||||||
|
1131
|
||||||
|
1623
|
||||||
|
1595
|
||||||
|
1128
|
||||||
|
1014
|
||||||
|
1863
|
||||||
|
1855
|
||||||
|
1203
|
||||||
|
1395
|
||||||
|
1521
|
||||||
|
1365
|
||||||
|
1202
|
||||||
|
780
|
||||||
|
1560
|
||||||
|
1834
|
||||||
|
1494
|
||||||
|
1551
|
||||||
|
1398
|
||||||
|
1190
|
||||||
|
1975
|
||||||
|
1940
|
||||||
|
1217
|
||||||
|
1793
|
||||||
|
1310
|
||||||
|
1070
|
||||||
|
1865
|
||||||
|
1307
|
||||||
|
1735
|
||||||
|
1897
|
||||||
|
1410
|
||||||
|
1994
|
||||||
|
1541
|
||||||
|
1569
|
||||||
|
1731
|
||||||
|
1238
|
||||||
|
1193
|
||||||
|
1226
|
||||||
|
1435
|
||||||
|
1159
|
||||||
|
1642
|
||||||
|
1652
|
||||||
|
1908
|
||||||
|
1920
|
||||||
|
1930
|
||||||
|
1068
|
||||||
|
1914
|
||||||
|
1186
|
||||||
|
1795
|
||||||
|
1888
|
||||||
|
1634
|
||||||
|
1750
|
||||||
|
1950
|
||||||
|
1493
|
||||||
|
1353
|
||||||
|
1461
|
||||||
|
1658
|
||||||
|
1856
|
||||||
|
1301
|
||||||
|
1538
|
||||||
|
1948
|
||||||
|
1998
|
||||||
|
1847
|
||||||
|
1880
|
||||||
|
1657
|
||||||
|
1536
|
||||||
|
1457
|
||||||
|
1762
|
||||||
|
1706
|
||||||
|
1894
|
||||||
|
542
|
||||||
|
1991
|
||||||
|
1108
|
||||||
|
1072
|
||||||
|
1064
|
||||||
|
1511
|
||||||
|
1496
|
||||||
|
1480
|
||||||
|
1955
|
||||||
|
1604
|
||||||
|
1766
|
||||||
|
1983
|
||||||
|
1713
|
||||||
|
1234
|
||||||
|
1503
|
||||||
|
1583
|
||||||
|
1729
|
||||||
|
1140
|
||||||
|
1006
|
||||||
|
1600
|
||||||
|
1699
|
||||||
|
1280
|
||||||
|
1891
|
||||||
|
1996
|
||||||
|
1375
|
||||||
|
1167
|
||||||
|
1625
|
||||||
|
1129
|
||||||
|
1770
|
||||||
|
1497
|
||||||
|
1620
|
||||||
|
1267
|
||||||
|
1421
|
||||||
|
1399
|
||||||
|
1563
|
||||||
|
1636
|
||||||
|
1293
|
||||||
|
1506
|
||||||
|
1613
|
||||||
|
1958
|
||||||
|
1967
|
||||||
|
1182
|
||||||
|
1050
|
||||||
|
1947
|
||||||
|
1787
|
||||||
|
1774
|
||||||
|
1928
|
||||||
|
1896
|
||||||
|
1303
|
||||||
|
1826
|
||||||
|
1132
|
||||||
|
1254
|
||||||
|
1752
|
||||||
|
1510
|
||||||
|
1705
|
||||||
|
1229
|
||||||
|
1558
|
||||||
|
1989
|
||||||
|
1567
|
||||||
|
698
|
||||||
|
1738
|
||||||
|
1357
|
||||||
|
1587
|
||||||
|
1316
|
||||||
|
1838
|
||||||
|
1311
|
||||||
|
1057
|
||||||
|
1644
|
||||||
|
1135
|
||||||
|
1300
|
||||||
|
1134
|
||||||
|
1577
|
||||||
|
1381
|
||||||
|
1806
|
||||||
|
1176
|
||||||
|
1993
|
||||||
|
1769
|
||||||
|
1633
|
||||||
|
1450
|
||||||
|
1819
|
||||||
|
1973
|
||||||
|
1694
|
||||||
|
969
|
||||||
|
1987
|
||||||
|
1095
|
||||||
|
1717
|
||||||
|
1933
|
||||||
|
1593
|
||||||
|
1045
|
||||||
|
1355
|
||||||
|
1459
|
||||||
|
1619
|
Loading…
Reference in a new issue