solve day1 part1 and part2
This commit is contained in:
commit
a38ef507e5
5 changed files with 499 additions and 0 deletions
28
.gitignore
vendored
Normal file
28
.gitignore
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
|
||||
# Compiled Object files
|
||||
*.o
|
||||
*.obj
|
||||
|
||||
# Compiled Dynamic libraries
|
||||
*.so
|
||||
*.dylib
|
||||
*.dll
|
||||
|
||||
# Compiled Static libraries
|
||||
*.a
|
||||
*.lib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
|
||||
# DUB
|
||||
.dub
|
||||
docs.json
|
||||
__dummy.html
|
||||
docs/
|
||||
|
||||
# Code coverage
|
||||
*.lst
|
||||
|
||||
# Main binaries
|
||||
main
|
200
day1/part1/input
Normal file
200
day1/part1/input
Normal file
|
@ -0,0 +1,200 @@
|
|||
1935
|
||||
1956
|
||||
1991
|
||||
1425
|
||||
1671
|
||||
1537
|
||||
1984
|
||||
1569
|
||||
1873
|
||||
1840
|
||||
1720
|
||||
1937
|
||||
1823
|
||||
1625
|
||||
1727
|
||||
1812
|
||||
1714
|
||||
1900
|
||||
1939
|
||||
1931
|
||||
1951
|
||||
1756
|
||||
1942
|
||||
1611
|
||||
1979
|
||||
1930
|
||||
1996
|
||||
2000
|
||||
1544
|
||||
1780
|
||||
1687
|
||||
1760
|
||||
1836
|
||||
1814
|
||||
1691
|
||||
1817
|
||||
1964
|
||||
1899
|
||||
1577
|
||||
1547
|
||||
866
|
||||
1560
|
||||
1988
|
||||
1601
|
||||
1970
|
||||
1738
|
||||
1507
|
||||
1667
|
||||
1851
|
||||
1933
|
||||
1515
|
||||
1856
|
||||
1969
|
||||
1860
|
||||
1801
|
||||
2007
|
||||
1866
|
||||
1800
|
||||
1749
|
||||
1843
|
||||
1711
|
||||
1495
|
||||
1905
|
||||
763
|
||||
1672
|
||||
1858
|
||||
1987
|
||||
1492
|
||||
1849
|
||||
1993
|
||||
1737
|
||||
1874
|
||||
1658
|
||||
1810
|
||||
1665
|
||||
1768
|
||||
1950
|
||||
1879
|
||||
1816
|
||||
1868
|
||||
1995
|
||||
1763
|
||||
1783
|
||||
1833
|
||||
1968
|
||||
1847
|
||||
1748
|
||||
1725
|
||||
1891
|
||||
1755
|
||||
286
|
||||
1976
|
||||
1977
|
||||
1655
|
||||
1808
|
||||
1986
|
||||
1779
|
||||
1861
|
||||
1953
|
||||
1888
|
||||
1792
|
||||
1811
|
||||
1872
|
||||
1790
|
||||
1839
|
||||
1985
|
||||
1827
|
||||
1842
|
||||
1925
|
||||
1735
|
||||
1635
|
||||
1821
|
||||
1820
|
||||
1973
|
||||
1531
|
||||
1770
|
||||
59
|
||||
1846
|
||||
1932
|
||||
1907
|
||||
1730
|
||||
933
|
||||
1395
|
||||
1753
|
||||
1751
|
||||
361
|
||||
1530
|
||||
1782
|
||||
1087
|
||||
1589
|
||||
1929
|
||||
1795
|
||||
1815
|
||||
1732
|
||||
1765
|
||||
1877
|
||||
1722
|
||||
526
|
||||
1709
|
||||
1789
|
||||
1892
|
||||
1913
|
||||
1662
|
||||
1809
|
||||
1670
|
||||
1947
|
||||
1835
|
||||
1587
|
||||
1758
|
||||
1982
|
||||
2009
|
||||
1757
|
||||
670
|
||||
1983
|
||||
1524
|
||||
1878
|
||||
1796
|
||||
1952
|
||||
566
|
||||
1922
|
||||
1882
|
||||
1870
|
||||
1799
|
||||
1731
|
||||
1724
|
||||
1805
|
||||
2003
|
||||
1596
|
||||
1566
|
||||
1853
|
||||
1911
|
||||
1857
|
||||
1739
|
||||
1744
|
||||
1627
|
||||
1729
|
||||
1745
|
||||
1845
|
||||
1582
|
||||
1884
|
||||
1883
|
||||
1941
|
||||
1764
|
||||
1685
|
||||
1791
|
||||
1837
|
||||
1697
|
||||
1742
|
||||
1781
|
||||
1948
|
||||
1876
|
||||
1989
|
||||
1643
|
||||
1871
|
||||
1906
|
||||
1726
|
||||
1958
|
||||
1502
|
||||
1927
|
||||
1946
|
32
day1/part1/main.d
Normal file
32
day1/part1/main.d
Normal file
|
@ -0,0 +1,32 @@
|
|||
import std;
|
||||
|
||||
void main()
|
||||
{
|
||||
File("input", "r").byLine.map!(to!int).array.multiply2EntriesThatSumTo(2020).writeln;
|
||||
}
|
||||
|
||||
int multiply2EntriesThatSumTo(int[] input, int sum)
|
||||
{
|
||||
foreach (key1; input)
|
||||
{
|
||||
foreach (key2; input)
|
||||
{
|
||||
if (key2 == key1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (key1 + key2 == sum)
|
||||
{
|
||||
return key1 * key2;
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
unittest
|
||||
{
|
||||
auto input = [1721, 979, 366, 299, 675, 1456];
|
||||
|
||||
assert(input.multiply2EntriesThatSumTo(2020) == 514579);
|
||||
}
|
200
day1/part2/input
Normal file
200
day1/part2/input
Normal file
|
@ -0,0 +1,200 @@
|
|||
1935
|
||||
1956
|
||||
1991
|
||||
1425
|
||||
1671
|
||||
1537
|
||||
1984
|
||||
1569
|
||||
1873
|
||||
1840
|
||||
1720
|
||||
1937
|
||||
1823
|
||||
1625
|
||||
1727
|
||||
1812
|
||||
1714
|
||||
1900
|
||||
1939
|
||||
1931
|
||||
1951
|
||||
1756
|
||||
1942
|
||||
1611
|
||||
1979
|
||||
1930
|
||||
1996
|
||||
2000
|
||||
1544
|
||||
1780
|
||||
1687
|
||||
1760
|
||||
1836
|
||||
1814
|
||||
1691
|
||||
1817
|
||||
1964
|
||||
1899
|
||||
1577
|
||||
1547
|
||||
866
|
||||
1560
|
||||
1988
|
||||
1601
|
||||
1970
|
||||
1738
|
||||
1507
|
||||
1667
|
||||
1851
|
||||
1933
|
||||
1515
|
||||
1856
|
||||
1969
|
||||
1860
|
||||
1801
|
||||
2007
|
||||
1866
|
||||
1800
|
||||
1749
|
||||
1843
|
||||
1711
|
||||
1495
|
||||
1905
|
||||
763
|
||||
1672
|
||||
1858
|
||||
1987
|
||||
1492
|
||||
1849
|
||||
1993
|
||||
1737
|
||||
1874
|
||||
1658
|
||||
1810
|
||||
1665
|
||||
1768
|
||||
1950
|
||||
1879
|
||||
1816
|
||||
1868
|
||||
1995
|
||||
1763
|
||||
1783
|
||||
1833
|
||||
1968
|
||||
1847
|
||||
1748
|
||||
1725
|
||||
1891
|
||||
1755
|
||||
286
|
||||
1976
|
||||
1977
|
||||
1655
|
||||
1808
|
||||
1986
|
||||
1779
|
||||
1861
|
||||
1953
|
||||
1888
|
||||
1792
|
||||
1811
|
||||
1872
|
||||
1790
|
||||
1839
|
||||
1985
|
||||
1827
|
||||
1842
|
||||
1925
|
||||
1735
|
||||
1635
|
||||
1821
|
||||
1820
|
||||
1973
|
||||
1531
|
||||
1770
|
||||
59
|
||||
1846
|
||||
1932
|
||||
1907
|
||||
1730
|
||||
933
|
||||
1395
|
||||
1753
|
||||
1751
|
||||
361
|
||||
1530
|
||||
1782
|
||||
1087
|
||||
1589
|
||||
1929
|
||||
1795
|
||||
1815
|
||||
1732
|
||||
1765
|
||||
1877
|
||||
1722
|
||||
526
|
||||
1709
|
||||
1789
|
||||
1892
|
||||
1913
|
||||
1662
|
||||
1809
|
||||
1670
|
||||
1947
|
||||
1835
|
||||
1587
|
||||
1758
|
||||
1982
|
||||
2009
|
||||
1757
|
||||
670
|
||||
1983
|
||||
1524
|
||||
1878
|
||||
1796
|
||||
1952
|
||||
566
|
||||
1922
|
||||
1882
|
||||
1870
|
||||
1799
|
||||
1731
|
||||
1724
|
||||
1805
|
||||
2003
|
||||
1596
|
||||
1566
|
||||
1853
|
||||
1911
|
||||
1857
|
||||
1739
|
||||
1744
|
||||
1627
|
||||
1729
|
||||
1745
|
||||
1845
|
||||
1582
|
||||
1884
|
||||
1883
|
||||
1941
|
||||
1764
|
||||
1685
|
||||
1791
|
||||
1837
|
||||
1697
|
||||
1742
|
||||
1781
|
||||
1948
|
||||
1876
|
||||
1989
|
||||
1643
|
||||
1871
|
||||
1906
|
||||
1726
|
||||
1958
|
||||
1502
|
||||
1927
|
||||
1946
|
39
day1/part2/main.d
Normal file
39
day1/part2/main.d
Normal file
|
@ -0,0 +1,39 @@
|
|||
import std;
|
||||
|
||||
void main()
|
||||
{
|
||||
File("input", "r").byLine.map!(to!int).array.multiply3EntriesThatSumTo(2020).writeln;
|
||||
}
|
||||
|
||||
int multiply3EntriesThatSumTo(int[] input, int sum)
|
||||
{
|
||||
foreach (key1; input)
|
||||
{
|
||||
foreach (key2; input)
|
||||
{
|
||||
if (key2 == key1)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
foreach (key3; input)
|
||||
{
|
||||
if (key3 == key1 || key3 == key2)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if (key1 + key2 + key3 == sum)
|
||||
{
|
||||
return key1 * key2 * key3;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
unittest
|
||||
{
|
||||
auto input = [1721, 979, 366, 299, 675, 1456];
|
||||
|
||||
assert(input.multiply3EntriesThatSumTo(2020) == 241_861_950);
|
||||
}
|
Loading…
Reference in a new issue