Reorganize
This commit is contained in:
parent
009cfb0af3
commit
16eb74908a
7 changed files with 0 additions and 0 deletions
965
2018/01/input.txt
Normal file
965
2018/01/input.txt
Normal file
|
|
@ -0,0 +1,965 @@
|
|||
-4
|
||||
+7
|
||||
+3
|
||||
+1
|
||||
-9
|
||||
-14
|
||||
+18
|
||||
-7
|
||||
-5
|
||||
-18
|
||||
+11
|
||||
-8
|
||||
+17
|
||||
-16
|
||||
-19
|
||||
+14
|
||||
+11
|
||||
-8
|
||||
+14
|
||||
+22
|
||||
+13
|
||||
+14
|
||||
-18
|
||||
+8
|
||||
-16
|
||||
+10
|
||||
-12
|
||||
+9
|
||||
-19
|
||||
-12
|
||||
-6
|
||||
+10
|
||||
+2
|
||||
-14
|
||||
+18
|
||||
+17
|
||||
+11
|
||||
-5
|
||||
+6
|
||||
+9
|
||||
+16
|
||||
-3
|
||||
+12
|
||||
+5
|
||||
+15
|
||||
+7
|
||||
+2
|
||||
-5
|
||||
-13
|
||||
+7
|
||||
+19
|
||||
+10
|
||||
-2
|
||||
+3
|
||||
-5
|
||||
-7
|
||||
-11
|
||||
+14
|
||||
+13
|
||||
+3
|
||||
+11
|
||||
+15
|
||||
-19
|
||||
-1
|
||||
-5
|
||||
+15
|
||||
+14
|
||||
-16
|
||||
+8
|
||||
+9
|
||||
-11
|
||||
-7
|
||||
+15
|
||||
+4
|
||||
+7
|
||||
+11
|
||||
-2
|
||||
+17
|
||||
-8
|
||||
-14
|
||||
+3
|
||||
-4
|
||||
+18
|
||||
+1
|
||||
+6
|
||||
-5
|
||||
+17
|
||||
+13
|
||||
-14
|
||||
-15
|
||||
-9
|
||||
+16
|
||||
+14
|
||||
+12
|
||||
-14
|
||||
-14
|
||||
+4
|
||||
-19
|
||||
+11
|
||||
+5
|
||||
+7
|
||||
+1
|
||||
+13
|
||||
-7
|
||||
+19
|
||||
+12
|
||||
+10
|
||||
+13
|
||||
-3
|
||||
+6
|
||||
-17
|
||||
+13
|
||||
-8
|
||||
+16
|
||||
+4
|
||||
-15
|
||||
+14
|
||||
-1
|
||||
+15
|
||||
-19
|
||||
+15
|
||||
-19
|
||||
+17
|
||||
-6
|
||||
+11
|
||||
-10
|
||||
+9
|
||||
+17
|
||||
+6
|
||||
+15
|
||||
-18
|
||||
+2
|
||||
-8
|
||||
+11
|
||||
-6
|
||||
-7
|
||||
+9
|
||||
+16
|
||||
-13
|
||||
-18
|
||||
-1
|
||||
+5
|
||||
-16
|
||||
+9
|
||||
-6
|
||||
+11
|
||||
-16
|
||||
+3
|
||||
-9
|
||||
+18
|
||||
+5
|
||||
+7
|
||||
+15
|
||||
+12
|
||||
+19
|
||||
-17
|
||||
-4
|
||||
-15
|
||||
-13
|
||||
+5
|
||||
-11
|
||||
+25
|
||||
+14
|
||||
+5
|
||||
+5
|
||||
+4
|
||||
-2
|
||||
-4
|
||||
-14
|
||||
+7
|
||||
+16
|
||||
+6
|
||||
+11
|
||||
-8
|
||||
+13
|
||||
+8
|
||||
+3
|
||||
-12
|
||||
+8
|
||||
+7
|
||||
-5
|
||||
+14
|
||||
+5
|
||||
+8
|
||||
-3
|
||||
-14
|
||||
-14
|
||||
-7
|
||||
-18
|
||||
-12
|
||||
+18
|
||||
+4
|
||||
-14
|
||||
-17
|
||||
-17
|
||||
+12
|
||||
-9
|
||||
+3
|
||||
-18
|
||||
+27
|
||||
+26
|
||||
-9
|
||||
-7
|
||||
+12
|
||||
+9
|
||||
+6
|
||||
+7
|
||||
+1
|
||||
-13
|
||||
+4
|
||||
-8
|
||||
-3
|
||||
-12
|
||||
+21
|
||||
+13
|
||||
+6
|
||||
+7
|
||||
+9
|
||||
+18
|
||||
-17
|
||||
+4
|
||||
+10
|
||||
-11
|
||||
-17
|
||||
-16
|
||||
+18
|
||||
+9
|
||||
-2
|
||||
+3
|
||||
-13
|
||||
-9
|
||||
+3
|
||||
-10
|
||||
-15
|
||||
+11
|
||||
+24
|
||||
+2
|
||||
+16
|
||||
+11
|
||||
+18
|
||||
+14
|
||||
-5
|
||||
-3
|
||||
+18
|
||||
+4
|
||||
+4
|
||||
+5
|
||||
-2
|
||||
-10
|
||||
+8
|
||||
+19
|
||||
+4
|
||||
+14
|
||||
+8
|
||||
+1
|
||||
-14
|
||||
-7
|
||||
+15
|
||||
-4
|
||||
-5
|
||||
+20
|
||||
+15
|
||||
+2
|
||||
-14
|
||||
-12
|
||||
-16
|
||||
+4
|
||||
-9
|
||||
+18
|
||||
+16
|
||||
+7
|
||||
+7
|
||||
+10
|
||||
+17
|
||||
-18
|
||||
+3
|
||||
+10
|
||||
-11
|
||||
-21
|
||||
-9
|
||||
-2
|
||||
+12
|
||||
-17
|
||||
+13
|
||||
+19
|
||||
-18
|
||||
-4
|
||||
-19
|
||||
+10
|
||||
-11
|
||||
-18
|
||||
-4
|
||||
+6
|
||||
+1
|
||||
+2
|
||||
-4
|
||||
-28
|
||||
-28
|
||||
-19
|
||||
+13
|
||||
+18
|
||||
-15
|
||||
-6
|
||||
+5
|
||||
+9
|
||||
-26
|
||||
-6
|
||||
+19
|
||||
-6
|
||||
+1
|
||||
-11
|
||||
-11
|
||||
+25
|
||||
-26
|
||||
+19
|
||||
+10
|
||||
+2
|
||||
+9
|
||||
-22
|
||||
-66
|
||||
-8
|
||||
+1
|
||||
-14
|
||||
-2
|
||||
-5
|
||||
+19
|
||||
-55
|
||||
+6
|
||||
-19
|
||||
-4
|
||||
-13
|
||||
+21
|
||||
-13
|
||||
-3
|
||||
-10
|
||||
-7
|
||||
+15
|
||||
-5
|
||||
-4
|
||||
-10
|
||||
+5
|
||||
-11
|
||||
-3
|
||||
+16
|
||||
+6
|
||||
+10
|
||||
+3
|
||||
-1
|
||||
-5
|
||||
-21
|
||||
-6
|
||||
+9
|
||||
-4
|
||||
-6
|
||||
-17
|
||||
-10
|
||||
+14
|
||||
-11
|
||||
+17
|
||||
+16
|
||||
-19
|
||||
+6
|
||||
+1
|
||||
-2
|
||||
+8
|
||||
-15
|
||||
+17
|
||||
-14
|
||||
-16
|
||||
+7
|
||||
-5
|
||||
-24
|
||||
-7
|
||||
-20
|
||||
+5
|
||||
-4
|
||||
+11
|
||||
-1
|
||||
+12
|
||||
-9
|
||||
-11
|
||||
-9
|
||||
-9
|
||||
-11
|
||||
-3
|
||||
-15
|
||||
-21
|
||||
-12
|
||||
+21
|
||||
+3
|
||||
+12
|
||||
+2
|
||||
+2
|
||||
+21
|
||||
-9
|
||||
+20
|
||||
+4
|
||||
+11
|
||||
-1
|
||||
+4
|
||||
-20
|
||||
+4
|
||||
+19
|
||||
+12
|
||||
+4
|
||||
-15
|
||||
+14
|
||||
+11
|
||||
+21
|
||||
-29
|
||||
-53
|
||||
+10
|
||||
-11
|
||||
+8
|
||||
-10
|
||||
-11
|
||||
+12
|
||||
-17
|
||||
-25
|
||||
-35
|
||||
+1
|
||||
-2
|
||||
+14
|
||||
+36
|
||||
+70
|
||||
+14
|
||||
+50
|
||||
+3
|
||||
+6
|
||||
+23
|
||||
-20
|
||||
-6
|
||||
-66
|
||||
-39
|
||||
-14
|
||||
+191
|
||||
-17
|
||||
+24
|
||||
+155
|
||||
-6
|
||||
+61
|
||||
+59623
|
||||
-4
|
||||
+7
|
||||
+19
|
||||
+5
|
||||
-1
|
||||
-8
|
||||
-8
|
||||
-15
|
||||
+16
|
||||
+8
|
||||
-7
|
||||
+19
|
||||
-3
|
||||
+14
|
||||
+14
|
||||
+6
|
||||
+17
|
||||
-15
|
||||
+3
|
||||
+11
|
||||
+12
|
||||
-5
|
||||
+19
|
||||
+2
|
||||
+1
|
||||
+16
|
||||
+13
|
||||
+6
|
||||
+1
|
||||
+18
|
||||
+16
|
||||
-4
|
||||
+11
|
||||
-1
|
||||
+19
|
||||
-7
|
||||
-19
|
||||
-10
|
||||
+19
|
||||
+7
|
||||
+4
|
||||
-17
|
||||
-4
|
||||
-4
|
||||
+9
|
||||
-8
|
||||
-17
|
||||
-9
|
||||
-14
|
||||
+16
|
||||
+4
|
||||
-19
|
||||
+11
|
||||
+1
|
||||
+2
|
||||
-19
|
||||
+7
|
||||
-8
|
||||
-7
|
||||
-18
|
||||
-6
|
||||
+4
|
||||
-5
|
||||
-15
|
||||
+2
|
||||
+7
|
||||
-18
|
||||
-8
|
||||
+14
|
||||
-20
|
||||
+1
|
||||
+17
|
||||
-2
|
||||
+3
|
||||
+17
|
||||
-1
|
||||
+7
|
||||
+10
|
||||
+10
|
||||
-1
|
||||
+19
|
||||
+3
|
||||
-16
|
||||
-10
|
||||
+1
|
||||
+10
|
||||
+6
|
||||
+20
|
||||
-17
|
||||
+19
|
||||
+14
|
||||
-18
|
||||
-11
|
||||
+22
|
||||
-3
|
||||
-16
|
||||
+15
|
||||
+12
|
||||
+14
|
||||
-12
|
||||
-1
|
||||
+22
|
||||
+10
|
||||
-7
|
||||
-8
|
||||
+2
|
||||
-1
|
||||
-6
|
||||
-7
|
||||
+19
|
||||
+7
|
||||
+12
|
||||
-14
|
||||
+18
|
||||
+7
|
||||
-17
|
||||
-9
|
||||
+10
|
||||
+14
|
||||
-1
|
||||
-17
|
||||
+8
|
||||
+4
|
||||
+2
|
||||
+16
|
||||
+3
|
||||
+16
|
||||
+4
|
||||
-2
|
||||
+18
|
||||
-19
|
||||
-15
|
||||
-1
|
||||
-10
|
||||
-5
|
||||
+8
|
||||
-4
|
||||
-13
|
||||
+18
|
||||
+15
|
||||
-5
|
||||
+10
|
||||
-6
|
||||
+13
|
||||
-11
|
||||
+12
|
||||
+2
|
||||
+4
|
||||
-2
|
||||
-13
|
||||
-7
|
||||
-11
|
||||
-13
|
||||
-5
|
||||
+4
|
||||
+10
|
||||
+12
|
||||
-15
|
||||
-16
|
||||
-10
|
||||
-9
|
||||
-27
|
||||
-4
|
||||
-9
|
||||
-21
|
||||
-13
|
||||
-4
|
||||
-1
|
||||
-10
|
||||
-10
|
||||
+14
|
||||
+12
|
||||
-29
|
||||
-16
|
||||
-12
|
||||
-1
|
||||
-12
|
||||
+18
|
||||
-20
|
||||
-11
|
||||
-5
|
||||
+12
|
||||
-2
|
||||
-6
|
||||
+18
|
||||
-2
|
||||
-1
|
||||
+6
|
||||
-18
|
||||
-12
|
||||
+20
|
||||
-4
|
||||
+6
|
||||
-14
|
||||
+6
|
||||
-17
|
||||
-6
|
||||
+8
|
||||
-14
|
||||
-18
|
||||
-4
|
||||
-8
|
||||
+2
|
||||
+7
|
||||
+20
|
||||
-10
|
||||
-15
|
||||
+18
|
||||
-12
|
||||
+13
|
||||
-18
|
||||
+9
|
||||
+11
|
||||
-19
|
||||
+9
|
||||
+3
|
||||
+10
|
||||
-17
|
||||
-16
|
||||
-4
|
||||
-11
|
||||
-5
|
||||
-9
|
||||
-12
|
||||
+4
|
||||
-13
|
||||
+14
|
||||
+13
|
||||
-17
|
||||
-21
|
||||
+7
|
||||
+19
|
||||
+10
|
||||
-6
|
||||
+9
|
||||
+13
|
||||
-5
|
||||
-13
|
||||
+19
|
||||
+7
|
||||
-4
|
||||
-6
|
||||
+17
|
||||
-16
|
||||
-8
|
||||
-14
|
||||
-11
|
||||
-3
|
||||
-16
|
||||
+10
|
||||
-1
|
||||
-2
|
||||
-19
|
||||
+3
|
||||
+13
|
||||
-15
|
||||
+8
|
||||
+6
|
||||
-19
|
||||
+2
|
||||
-12
|
||||
-6
|
||||
-19
|
||||
+17
|
||||
-8
|
||||
+11
|
||||
+2
|
||||
-18
|
||||
-6
|
||||
-10
|
||||
+7
|
||||
+4
|
||||
+12
|
||||
-3
|
||||
+8
|
||||
+7
|
||||
+18
|
||||
-8
|
||||
+10
|
||||
-15
|
||||
-2
|
||||
-12
|
||||
+20
|
||||
-13
|
||||
-16
|
||||
-11
|
||||
+9
|
||||
-1
|
||||
+11
|
||||
+19
|
||||
-5
|
||||
+20
|
||||
-2
|
||||
+17
|
||||
+17
|
||||
+17
|
||||
+18
|
||||
+17
|
||||
+25
|
||||
-31
|
||||
+20
|
||||
-7
|
||||
+21
|
||||
+15
|
||||
+15
|
||||
-13
|
||||
+18
|
||||
+14
|
||||
+28
|
||||
-10
|
||||
+16
|
||||
-17
|
||||
-16
|
||||
-2
|
||||
-7
|
||||
-8
|
||||
-23
|
||||
-16
|
||||
+11
|
||||
-20
|
||||
+11
|
||||
-3
|
||||
-31
|
||||
-4
|
||||
-20
|
||||
+18
|
||||
-8
|
||||
+3
|
||||
+6
|
||||
-15
|
||||
-35
|
||||
+19
|
||||
+2
|
||||
-4
|
||||
+9
|
||||
-12
|
||||
-15
|
||||
-9
|
||||
-3
|
||||
+15
|
||||
+38
|
||||
-6
|
||||
+11
|
||||
-36
|
||||
-11
|
||||
-14
|
||||
-1
|
||||
-5
|
||||
+2
|
||||
+23
|
||||
-12
|
||||
-33
|
||||
-18
|
||||
+1
|
||||
+5
|
||||
+3
|
||||
+16
|
||||
+7
|
||||
-28
|
||||
+8
|
||||
-22
|
||||
-7
|
||||
-18
|
||||
-17
|
||||
+16
|
||||
+11
|
||||
+16
|
||||
+4
|
||||
-15
|
||||
+7
|
||||
-10
|
||||
-7
|
||||
-9
|
||||
-4
|
||||
+9
|
||||
+6
|
||||
-21
|
||||
-11
|
||||
-20
|
||||
-19
|
||||
-5
|
||||
+3
|
||||
+27
|
||||
+9
|
||||
+23
|
||||
+16
|
||||
-19
|
||||
-2
|
||||
+20
|
||||
+13
|
||||
-2
|
||||
-16
|
||||
+11
|
||||
+2
|
||||
-10
|
||||
-11
|
||||
-21
|
||||
-6
|
||||
-8
|
||||
-10
|
||||
-20
|
||||
+35
|
||||
+46
|
||||
+2
|
||||
-19
|
||||
-13
|
||||
+23
|
||||
-2
|
||||
+56
|
||||
+7
|
||||
+53
|
||||
+5
|
||||
-64
|
||||
-62
|
||||
+103
|
||||
+162
|
||||
+4
|
||||
+10
|
||||
-27
|
||||
-15
|
||||
-14
|
||||
+22
|
||||
+9
|
||||
+1
|
||||
+38
|
||||
-9
|
||||
+8
|
||||
+9
|
||||
+34
|
||||
+1
|
||||
-11
|
||||
+4
|
||||
-19
|
||||
-29
|
||||
+16
|
||||
+52
|
||||
-16
|
||||
+27
|
||||
+188
|
||||
-83
|
||||
+191
|
||||
+59071
|
||||
+19
|
||||
-10
|
||||
-6
|
||||
-16
|
||||
-18
|
||||
+14
|
||||
-10
|
||||
+18
|
||||
+4
|
||||
-10
|
||||
+3
|
||||
+16
|
||||
+6
|
||||
-18
|
||||
-3
|
||||
+1
|
||||
+4
|
||||
-20
|
||||
+4
|
||||
-16
|
||||
-7
|
||||
-6
|
||||
+19
|
||||
+12
|
||||
-3
|
||||
-7
|
||||
-13
|
||||
-7
|
||||
-9
|
||||
+19
|
||||
-20
|
||||
+12
|
||||
+12
|
||||
+18
|
||||
-15
|
||||
-8
|
||||
-11
|
||||
-9
|
||||
-7
|
||||
+13
|
||||
+16
|
||||
+11
|
||||
+4
|
||||
-13
|
||||
-10
|
||||
+1
|
||||
-11
|
||||
-14
|
||||
+13
|
||||
+4
|
||||
+10
|
||||
-5
|
||||
+7
|
||||
-24
|
||||
-7
|
||||
+11
|
||||
-22
|
||||
-20
|
||||
+15
|
||||
-10
|
||||
+13
|
||||
-7
|
||||
-25
|
||||
-2
|
||||
-4
|
||||
+45
|
||||
-1
|
||||
+16
|
||||
+11
|
||||
+24
|
||||
+4
|
||||
+4
|
||||
+22
|
||||
-17
|
||||
+13
|
||||
-16
|
||||
+5
|
||||
+16
|
||||
+16
|
||||
+15
|
||||
-119289
|
||||
33
2018/01/solve.py
Normal file
33
2018/01/solve.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import sys
|
||||
|
||||
def load_freqs(filename):
|
||||
freqs = []
|
||||
with open(filename, "r") as f:
|
||||
for line in f:
|
||||
n = int(line[:-1])
|
||||
freqs.append(n)
|
||||
return freqs
|
||||
|
||||
# PART 2
|
||||
|
||||
def find_repeat(freqs):
|
||||
total = 0
|
||||
found = {total}
|
||||
|
||||
while True:
|
||||
for n in freqs:
|
||||
total += n
|
||||
if total in found:
|
||||
return total
|
||||
else:
|
||||
found.add(total)
|
||||
|
||||
def main(filename):
|
||||
freqs = load_freqs(filename)
|
||||
print(f"Solutions for {filename}")
|
||||
print(f"Part 1: {sum(freqs)}")
|
||||
print(f"Part 2: {find_repeat(freqs)}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
for filename in sys.argv[1:]:
|
||||
main(filename)
|
||||
5
2018/01/testinput.txt
Normal file
5
2018/01/testinput.txt
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
+1
|
||||
+2
|
||||
-3
|
||||
-4
|
||||
+5
|
||||
250
2018/02/input.txt
Normal file
250
2018/02/input.txt
Normal file
|
|
@ -0,0 +1,250 @@
|
|||
icxjubroqtunzeyzpomfksahgw
|
||||
ibxjvbroqtunleyzjdmfksahow
|
||||
icxjvbroqtinleyzpdmflsahnw
|
||||
icxjvbnoqtunleyvpgmfksahgw
|
||||
wcxjvbroqrunleyzpdmfksahge
|
||||
icxjtbroqtjzleyzpdmfksahgw
|
||||
icxjvbrohtunleyzpdmfkbahsw
|
||||
xcxjvbroqcunleyzpdmfksaxgw
|
||||
ycxjvbroqtunleyzpowfksahgw
|
||||
icxfvbroqtunleyzpdmfksncgw
|
||||
ixxjvbuoqtunleyzpdvfksahgw
|
||||
icfjvbroqtunleyzpdmfksadgt
|
||||
icxjvbroqdunleyzpdafksqhgw
|
||||
icxjvbrobtunlelzpdmfkuahgs
|
||||
ujxjvbroqtunleyzpdmqksahgw
|
||||
icqjvsroqtunleyzpdmfksahuw
|
||||
icxjvbroptpnleyzpdmfksangw
|
||||
ipxjvbroqtunleyzpdmfesahgi
|
||||
icajvbroqtunltyzpdqfksahgw
|
||||
ickjvbroqtuzleyzpdmfgsahgw
|
||||
icxjvbroqtunledzpdmwksahgz
|
||||
icxjvlroqtsnleyzpdmfksvhgw
|
||||
icxjvbroqtunleyzpdsfysahvw
|
||||
icxjvbroqtunwnyzydmfksahgw
|
||||
ionjvbroqtunleyzpdmfksahgj
|
||||
icxjvwriqtunleyzpdmfksahgi
|
||||
ocxjvbroztunleyzpdmfksapgw
|
||||
icxjvbroqtmnlewzpumfksahgw
|
||||
ucxjvbroqtunleyzpdmzktahgw
|
||||
icxgvbroqtunleyztdmfktahgw
|
||||
icxhvbroqttnleybpdmfksahgw
|
||||
icxjvbroqtugleyzpdxfkeahgw
|
||||
acxjvbroqvunlexzpdmfksahgw
|
||||
icxjvbroqglnleyzpbmfksahgw
|
||||
icxjvbriqtnvleyzpdmfksahgw
|
||||
icxjvbreqtunlakzpdmfksahgw
|
||||
gcxjvbuoqtunleyzpdmfksawgw
|
||||
icxjvbroqtunleyzpddfkyzhgw
|
||||
icxjvbjoqtunleyzpdmfqsahhw
|
||||
icxjvjroqtunleyzpnmfksajgw
|
||||
ycxjvbroqtunmeyzcdmfksahgw
|
||||
irxkvbryqtunleyzpdmfksahgw
|
||||
isxjvbrlqtunleyzpdmsksahgw
|
||||
icxjvbcoqtunleyzpdfkksahgw
|
||||
ixnjvbroqtunleyzpdmfkqahgw
|
||||
wcxjvbroqhunleyzqdmfksahgw
|
||||
icljvurmqtunleyzpdmfksahgw
|
||||
ibxjvbroqtayleyzpdmfksahgw
|
||||
arxjvbroqiunleyzpdmfksahgw
|
||||
iuxjvbroqtunluyzpdmoksahgw
|
||||
icxjvbrmqtunleyzpdmfosahew
|
||||
isxjvbroqtunleyrpdmfksrhgw
|
||||
icxjvxrpqtunleyzpdmfkdahgw
|
||||
ichjvbrogtunllyzpdmfksahgw
|
||||
icxjvbeoqtunlryzpdmfksakgw
|
||||
icxjvbroqtcnemyzpdmfksahgw
|
||||
icxjvbroqtybledzpdmfksahgw
|
||||
icxjvbrqqtunleyzpdmfksgngw
|
||||
icgjvbroqtunleyzmdmfksabgw
|
||||
icxjtbroqtunleyzkdmfksahww
|
||||
icxjvbfoqtunleyzpamfqsahgw
|
||||
icxjvbroknuyleyzpdmfksahgw
|
||||
icxjvbroqtujleyzpdmaksaigw
|
||||
icxjvbroqtnnlmyzpdmflsahgw
|
||||
icxjvbroqtunlefzpdmfsfahgw
|
||||
icxjvdroqtusleyzpdzfksahgw
|
||||
icxjvbioqtunlsyzpdmfkshhgw
|
||||
icxbvbrodtunleyzpdmoksahgw
|
||||
icxjvbroqtuvleyzpdmfkbahmw
|
||||
iyxjvbroqtunljvzpdmfksahgw
|
||||
icxjvbroqtudleynddmfksahgw
|
||||
icxjvwroqtnnleyzpdmfksahgz
|
||||
ichjvbroqtunleyzjdmeksahgw
|
||||
icxjvbrostunluyrpdmfksahgw
|
||||
icfjvbroqtunleyxpdgfksahgw
|
||||
nhxjvbroqtunlerzpdmfksahgw
|
||||
icxjvbrothunlexzpdmfksahgw
|
||||
icxjvbrzltqnleyzpdmfksahgw
|
||||
icxjvbrhqtunleyzpdmfksajgy
|
||||
vcxjvjroqiunleyzpdmfksahgw
|
||||
icxjfbroltunleyzpdmqksahgw
|
||||
icxbvbroqtunleyzpdofasahgw
|
||||
icxjvbkoqtunveyzpdmfksaqgw
|
||||
icxsebroqtunleyzpdmuksahgw
|
||||
icxjvbroquunlpyrpdmfksahgw
|
||||
icxhvbroqtunjeyzpdmrksahgw
|
||||
icdjvbroqtunlzyzpdmfksangw
|
||||
jcxqvbroqtvnleyzpdmfksahgw
|
||||
icxjvxroqtunleyrpdmfxsahgw
|
||||
icxjvnroqtunleyzpdmfssyhgw
|
||||
icxjvbraptunleyzpdofksahgw
|
||||
icxjvbroatunleyjpdmfbsahgw
|
||||
icxjvbroytlnlryzpdmfksahgw
|
||||
iaxjvbroqkunleyzpdmfcsahgw
|
||||
ucxjvbroqtuileyzzdmfksahgw
|
||||
icxjqbroqtcnleyzpgmfksahgw
|
||||
icxjvbloqtunleyzadmfksaqgw
|
||||
icxjvbroqtunleyzkdmnksakgw
|
||||
icxjvbroqtunleyjpdxfksahvw
|
||||
iqxjvbroqtujleyzpdmfklahgw
|
||||
icgjvbroqtunleyzpdmfksbhgb
|
||||
icxjzbroqtunleyzpdmfkdahgg
|
||||
icxjvbrobtunloywpdmfksahgw
|
||||
icxavbroqtunleyfpdmfksahgd
|
||||
icxjvbroqtunleyophmfksahkw
|
||||
icxjndroqtunlyyzpdmfksahgw
|
||||
icxjvbroqtjnleyppdmvksahgw
|
||||
icxjvbroonfnleyzpdmfksahgw
|
||||
icxjvbrqqtlnljyzpdmfksahgw
|
||||
icxjvbrzqtunlelspdmfksahgw
|
||||
icxjvbooqtunleyztdmfkfahgw
|
||||
icajvbroltunlnyzpdmfksahgw
|
||||
icxjvbroqtunleyzidmdkschgw
|
||||
icxjvbroktupleyzpdmfksahyw
|
||||
icxjcbroyeunleyzpdmfksahgw
|
||||
icxjvbroqtunlezkpdmfksahsw
|
||||
icxjvbroqtunlejzpcmfksrhgw
|
||||
icxjvvroqtunlsyzkdmfksahgw
|
||||
icxjnbroqtunbeyzpdmfpsahgw
|
||||
itxjbbroqtunleyzpemfksahgw
|
||||
icxjvbroqtunlrkzpdmfksshgw
|
||||
rcxjvbroqtujlbyzpdmfksahgw
|
||||
icxjvmroqtugleazpdmfksahgw
|
||||
icxjvbfoqtunleylpdmfkeahgw
|
||||
icnjvoroktunleyzpdmfksahgw
|
||||
icxjvbroqtunlvyzpdmfkfahgr
|
||||
icxjvbroqtgnseyzpdmfxsahgw
|
||||
scxjvbroqtunleycpdmfksdhgw
|
||||
icxhvbxoqtunleuzpdmfksahgw
|
||||
icxjvbruqtunleyzpnmfksfhgw
|
||||
icdjvbroqtunleyzpdmfksahup
|
||||
ihxjvbroqtunleovpdmfksahgw
|
||||
icxjvbroqtunleyzxdmfksahzv
|
||||
ocxjvbioqtunleyzpdmfzsahgw
|
||||
idxjvbroqtunlyyzpdofksahgw
|
||||
izdjvbroqtunleyzpdtfksahgw
|
||||
icxjvbrnqtunleyzpdmfksbhgb
|
||||
icxjvbrjqtunleyhpdmrksahgw
|
||||
icxjvbroqtunleyzpdbflsahgg
|
||||
icxjvbmfqtunleyzpdmfkaahgw
|
||||
idxjvbroqtunlsyzpdffksahgw
|
||||
bcxjvbroqtunleyzpkmfkswhgw
|
||||
ivxjvbroqtdnleyzpdmbksahgw
|
||||
icxpvbboqtunleyzpdmfksahtw
|
||||
ibxjvbroqtunlehzpdmfkmahgw
|
||||
icxjvbboqtunleyzpdmfkaahgv
|
||||
icxjlaroqtuileyzpdmfksahgw
|
||||
icxjvbroftunleyzpdmfqsahew
|
||||
ichjvbroqtunleyzpdmiwsahgw
|
||||
icxrvbvoqtunleyzpdmiksahgw
|
||||
icxjvbroqtunldydpdmfksahgl
|
||||
icogvbroqtunleyzpdmfnsahgw
|
||||
icxjvbroqtunleszodmfkswhgw
|
||||
icxjvbrontunleyztemfksahgw
|
||||
icxjvbrovtunleyzpdvkksahgw
|
||||
icxjvbroqqucteyzpdmfksahgw
|
||||
icmovbroptunleyzpdmfksahgw
|
||||
icxjvbqoftunleyzvdmfksahgw
|
||||
icxjvbdoqtunleyzpdmfkadhgw
|
||||
icxjvbroqtunlgnzpdmfksaqgw
|
||||
icxjvbroqtunieygpdyfksahgw
|
||||
acdjvbroqtunleyzpdmfkwahgw
|
||||
icxjvbroqtunleyzpdmfkfahlj
|
||||
icxjvbgoqtunleyepdmvksahgw
|
||||
icxjvbpobbunleyzpdmfksahgw
|
||||
icxjvbroqtunleurpdmfktahgw
|
||||
ipxjvbzoqtunleyzpdmffsahgw
|
||||
icxjtbroqtunllyzpdmuksahgw
|
||||
icxjvbroqtunbsyzadmfksahgw
|
||||
ihxjvoroqtuqleyzpdmfksahgw
|
||||
idxjmbroqqunleyzpdmfksahgw
|
||||
wcxjvbdoqtunleyzpdmfksahgr
|
||||
icxjvbroqtunleygptmfksahgj
|
||||
ipxjvbrsqtunleyzpdmfksghgw
|
||||
ycxjvbroqtunluyzkdmfksahgw
|
||||
icxjvbroxtuulejzpdmfksahgw
|
||||
icqjvbroqtunlwyypdmfksahgw
|
||||
ioxjhbroqtunleyzphmfksahgw
|
||||
icxjvbgoqnunleyzpdmfksahaw
|
||||
mcxjvbroqtunleyzpdmfksihgh
|
||||
icxjsbroqtunlqyzpdmfksawgw
|
||||
icxjvbroqtuoleycpdmftsahgw
|
||||
icxjvbroqtunleyzgdifksahlw
|
||||
icxjvbmoqtunleyzjfmfksahgw
|
||||
icxjvbroqtunlezopdmfksahge
|
||||
icxjvbroqtbnlefzpdmfosahgw
|
||||
tcxjvbromtunlevzpdmfksahgw
|
||||
irxjgbroqtunleyzpdmfksthgw
|
||||
icxjvbrojtunleyxpdmoksahgw
|
||||
icxrvbroytpnleyzpdmfksahgw
|
||||
icxjvbroqtunfeyupdmfksasgw
|
||||
ihqjvbroqtunleyzpdmftsahgw
|
||||
icxjobroqkunleozpdmfksahgw
|
||||
icjjjbroqtualeyzpdmfksahgw
|
||||
icxjvbroqtunaeytpdmfksahvw
|
||||
icxjvbroqtunzeyzpdmfkshhxw
|
||||
icxqvbroqtucleyzxdmfksahgw
|
||||
icxjvbrogturleyzxdmfksahgw
|
||||
icxjvoqoqtunleyzpdcfksahgw
|
||||
iuxjvbroqtunleyzpdmfksopgw
|
||||
icxjveroqtunleyzptmfksalgw
|
||||
icxjvbroqtunleyzpdmfwcahhw
|
||||
iwxjvbroqtlnleyzpdmfksyhgw
|
||||
ectjvbroqtanleyzpdmfksahgw
|
||||
icxjvnroqtyhleyzpdmfksahgw
|
||||
icvjvhboqtunleyzpdmfksahgw
|
||||
icxjtbroqtuzleyupdmfksahgw
|
||||
icjjvproqtunleyzpsmfksahgw
|
||||
icdjvbroqtutleyzpdmiksahgw
|
||||
icxjvwroqtujleyzpdmfksahgc
|
||||
icxjxbroqtunleyzpdwhksahgw
|
||||
icxjvbqoqtunleyzpdmvfsahgw
|
||||
icajvbroqtusleyzpdmfksaagw
|
||||
icxjvbroqtunbtyzpdmfksmhgw
|
||||
kcxjvbroqtxnleyzpdmfkskhgw
|
||||
icxjvbqogfunleyzpdmfksahgw
|
||||
icxjvbroqtubleyzpdmfdswhgw
|
||||
icxjvprlqtunleyzpdmffsahgw
|
||||
icxjxbroqtucleyzpdmfksakgw
|
||||
dcxrvbroqtunleycpdmfksahgw
|
||||
icxjvbrobtunleyzpomfksahgu
|
||||
ocxrvbroqtunleyzpdmfssahgw
|
||||
icxjvbroktunlejzpdmfksahzw
|
||||
icxjvbrovtunleyzmdmfkhahgw
|
||||
icxjvbroqtudleygpdmfksfhgw
|
||||
bcxjvbroqtubllyzpdmfksahgw
|
||||
icxwvbrontunzeyzpdmfksahgw
|
||||
icxjvbroqtunleysjbmfksahgw
|
||||
icxjvvroztunleyzpdmfksjhgw
|
||||
ivxjxbroqtunleyzpdmfksahew
|
||||
icxjvbroqtunleyupqufksahgw
|
||||
icxjvmrcqtunleyzpdmxksahgw
|
||||
icxjvgroqtunleyzpdgfkuahgw
|
||||
icxjvbroqthnqeyfpdmfksahgw
|
||||
icxjsbuodtunleyzpdmfksahgw
|
||||
iuxjzbroqtunleyzpdrfksahgw
|
||||
icxjvbrobtunlelzpdmfksahgs
|
||||
icxjvbroqtzhljyzpdmfksahgw
|
||||
inxtvbroqtunleyzpdmeksahgw
|
||||
icgjvbroqtunleyztdmfksahgq
|
||||
icxjvagoqtugleyzpdmfksahgw
|
||||
icxuvbroqtunleyzpimfkyahgw
|
||||
icxzvbroqtfhleyzpdmfksahgw
|
||||
icxjjbroqtqnleyzpdmnksahgw
|
||||
icjrvbroqtunleszpdmfksahgw
|
||||
iexjvbroqtunlgyzpdmfksacgw
|
||||
rcxjvbkoqtuoleyzpdmfksahgw
|
||||
icxjvbroqgunlwyzpdmfksqhgw
|
||||
icxjvbroqtunleqzpsmfksqhgw
|
||||
icxjvbroqtubaeyzpdmfksaugw
|
||||
63
2018/02/solve.py
Normal file
63
2018/02/solve.py
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
import sys
|
||||
|
||||
def load_words(filename):
|
||||
words = []
|
||||
with open(filename, "r") as f:
|
||||
for line in f:
|
||||
words.append(line[:-1])
|
||||
return words
|
||||
|
||||
# PART 1
|
||||
|
||||
def has_n_chars(word, n):
|
||||
count = {}
|
||||
for char in word:
|
||||
count[char] = count.get(char, 0) + 1
|
||||
return n in count.values()
|
||||
|
||||
def count_words(words):
|
||||
twice = 0
|
||||
thrice = 0
|
||||
for word in words:
|
||||
if has_n_chars(word, 2):
|
||||
twice += 1
|
||||
if has_n_chars(word, 3):
|
||||
thrice += 1
|
||||
return twice, thrice
|
||||
|
||||
def checksum(words):
|
||||
twice, thrice = count_words(words)
|
||||
return twice * thrice
|
||||
|
||||
# PART 2
|
||||
|
||||
def differ_by(a, b):
|
||||
count = 0
|
||||
for x, y in zip(a, b):
|
||||
if x != y:
|
||||
count += 1
|
||||
return count
|
||||
|
||||
def find_ids(words):
|
||||
for i, a in enumerate(words):
|
||||
for b in words[i:]:
|
||||
if differ_by(a, b) == 1:
|
||||
return a, b
|
||||
|
||||
def common_chars(a, b):
|
||||
result = []
|
||||
for x, y in zip(a, b):
|
||||
if x == y:
|
||||
result.append(x)
|
||||
return "".join(result)
|
||||
|
||||
def main(filename):
|
||||
words = load_words(filename)
|
||||
print(f"Solutions for {filename}")
|
||||
print(f"Part 1: {checksum(words)}")
|
||||
a, b = find_ids(words)
|
||||
print(f"Part 2: {common_chars(a, b)}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
for filename in sys.argv[1:]:
|
||||
main(filename)
|
||||
1237
2018/03/input.txt
Normal file
1237
2018/03/input.txt
Normal file
File diff suppressed because it is too large
Load diff
56
2018/03/solve.py
Normal file
56
2018/03/solve.py
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
import re
|
||||
import sys
|
||||
|
||||
CLAIM_RE = r"#(\d+) @ (\d+),(\d+): (\d+)x(\d+)\n"
|
||||
|
||||
def load_claims(filename):
|
||||
claims = {}
|
||||
with open(filename, "r") as f:
|
||||
for line in f:
|
||||
match = re.fullmatch(CLAIM_RE, line)
|
||||
elf, x, y, w, h = match.groups()
|
||||
elf, x, y, w, h = int(elf), int(x), int(y), int(w), int(h)
|
||||
claims[elf] = (x, y, w, h)
|
||||
return claims
|
||||
|
||||
# PART 1
|
||||
|
||||
def count_claims(claims):
|
||||
squares = {}
|
||||
for x, y, w, h in claims.values():
|
||||
for dw in range(w):
|
||||
for dh in range(h):
|
||||
coords = (x + dw, y + dh)
|
||||
squares[coords] = squares.get(coords, 0) + 1
|
||||
return squares
|
||||
|
||||
def find_doubles(squares):
|
||||
return len(list(filter(lambda x: x > 1, squares.values())))
|
||||
|
||||
# PART 2
|
||||
|
||||
def is_intact(squares, x, y, w, h):
|
||||
for dw in range(w):
|
||||
for dh in range(h):
|
||||
coords = (x + dw, y + dh)
|
||||
if squares.get(coords, 0) > 1:
|
||||
return False
|
||||
return True
|
||||
|
||||
def find_intact_claim(claims, squares):
|
||||
for elf, (x, y, w, h) in claims.items():
|
||||
if is_intact(squares, x, y, w, h):
|
||||
return elf
|
||||
|
||||
def main(filename):
|
||||
claims = load_claims(filename)
|
||||
print(f"Solutions for {filename}")
|
||||
squares = count_claims(claims)
|
||||
doubles = find_doubles(squares)
|
||||
print(f"Part 1: {doubles}")
|
||||
intact = find_intact_claim(claims, squares)
|
||||
print(f"Part 2: {intact}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
for filename in sys.argv[1:]:
|
||||
main(filename)
|
||||
Loading…
Add table
Add a link
Reference in a new issue