first commit
This commit is contained in:
commit
9f3e899cda
1024
01/input.txt
Normal file
1024
01/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
9
01/solve01.py
Executable file
9
01/solve01.py
Executable file
@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
start = 0
|
||||
|
||||
with open('input.txt', 'r') as f:
|
||||
for line in f:
|
||||
start += int(line)
|
||||
|
||||
print(start)
|
19
01/solve02.py
Executable file
19
01/solve02.py
Executable file
@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
start = 0
|
||||
seen = [0]
|
||||
|
||||
def get_freq_change():
|
||||
while True:
|
||||
print('reading file from start')
|
||||
with open('input.txt', 'r') as f:
|
||||
for line in f:
|
||||
yield int(line)
|
||||
|
||||
for change in get_freq_change():
|
||||
start += change
|
||||
if start in seen:
|
||||
break
|
||||
seen.append(start)
|
||||
|
||||
print(start)
|
250
02/input.txt
Normal file
250
02/input.txt
Normal file
@ -0,0 +1,250 @@
|
||||
pbopcmjeizuhxlqnwasfgtycdm
|
||||
pjokrmjeizuhxlqnfasfguycdv
|
||||
pbokrpjejkuhxlqnwasfgtycdv
|
||||
sbokrmjeizuhxaqnwastgtycdv
|
||||
pbokrmjeizuhxljnnasfgtycnv
|
||||
pbokrqjeizuhxbqndasfgtycdv
|
||||
bbokrmjeizuhxlqnwasfgtycfj
|
||||
pbokrmjeisuhxlqnwasfzdycdv
|
||||
pbokrmjefxuhxlqnwasfptycdv
|
||||
pqokrmjenzuhxlqnwasfgtygdv
|
||||
pbokrmjeizunklqnwassgtycdv
|
||||
pbokrmjeizghxvqnkasfgtycdv
|
||||
lboirmjeizuhxlqnwfsfgtycdv
|
||||
pbofrmjeizuhalqnwasfgtyddv
|
||||
pbokrmjeiguhplqcwasfgtycdv
|
||||
pbokrmjeizzhxlqnwavfgtyctv
|
||||
pbokrmjeizuhxlqnwaefgtycaj
|
||||
pbokzmjedzuhxlqnwasfgtlcdv
|
||||
pnokrmjegzuhxlbnwasfgtycdv
|
||||
pbojrmjeizuhtlqniasfgtycdv
|
||||
pbokxmiefzuhxlqnwasfgtycdv
|
||||
pbokrmoeizuhxlqnpasngtycdv
|
||||
abokrmjeezuhxlqnwasfdtycdv
|
||||
pbokrmyeizugxlqnwasfgtycda
|
||||
pbokdmjeizuhxlqnuatfgtycdv
|
||||
psokrmjeiauhxlqnwasxgtycdv
|
||||
pbokrmjeizuhxlqzwasfgtyzdy
|
||||
pboktmjeizuhxnqndasfgtycdv
|
||||
pbodrrjeizuhxlqnwasfgtycdb
|
||||
pbokrmjekzuhxljnwasfgtycuv
|
||||
pbokrmjnizuhllqnwawfgtycdv
|
||||
prmkrmjeiwuhxlqnwasfgtycdv
|
||||
pbokrmjeizkhxlenwajfgtycdv
|
||||
pbofrmjeizuixlqnwasfgoycdv
|
||||
gbhkrmjeizuhclqnwasfgtycdv
|
||||
pbokrmweizuwxlqnwasfgtycyv
|
||||
pbukrmjeizuhxlqnwasfgqhcdv
|
||||
pbokxmjeizuhxlqnwasfgtecdu
|
||||
pbokomjeizuhrlqnfasfgtycdv
|
||||
bbokymjeizuhxlqnpasfgtycdv
|
||||
pbodrmjeizuhxlqnwadfgtgcdv
|
||||
zbokrljeipuhxlqnwasfgtycdv
|
||||
pboermjeizuxxlqnwasfgtpcdv
|
||||
pqbkrmjeizuhxlqnjasfgtycdv
|
||||
pbokrmfeizuhxvqgwasfgtycdv
|
||||
pbokrmjeizuhzlqnjasfdtycdv
|
||||
rbofrmjeizkhxlqnwasfgtycdv
|
||||
pbokrmseizubxlqnwasfgtycdy
|
||||
pbocrmjeizuhxaqnwasfgtycda
|
||||
pbokrmjeizuhxlqndakfgtscdv
|
||||
pbokrrjeizuhxlqnwgshgtycdv
|
||||
pbokrajeizuhxpqnwasrgtycdv
|
||||
pbokrbjeizubxlqnwssfgtycdv
|
||||
pbokemjhizuhxlqnwazfgtycdv
|
||||
pbokrmjeizuhxlqntisfgtyrdv
|
||||
pbokrmjwinuhxlqnwasfgkycdv
|
||||
pypkrmjeizuhxlqtwasfgtycdv
|
||||
pbokrmjeizuhxlqniasfrpycdv
|
||||
pbokomjeizuhxlqnwasfgtgcdw
|
||||
pbokrmjeizusplqnwxsfgtycdv
|
||||
pbodrmueizxhxlqnwasfgtycdv
|
||||
pbokwmjeizurxlqnwasfgtycdi
|
||||
pbohrmjejzuhxlqnwasfgtycgv
|
||||
pbokrmtqizuhxlqnwasfitycdv
|
||||
ptozrmjeizuhylqnwasfgtycdv
|
||||
pbokrmjtizuhxlqfwasfgtykdv
|
||||
pbokrmpeizuhxnqmwasfgtycdv
|
||||
pbokrmjeizujxlynwtsfgtycdv
|
||||
dbokrmjeizuhxlqnwasngticdv
|
||||
pbskrmjeizuhxlqnrasfttycdv
|
||||
pbwkrmjerzuhxlqnwaslgtycdv
|
||||
pboyrmceizuhxlqnwssfgtycdv
|
||||
pbokpmjeizchxlqngasfgtycdv
|
||||
pbokrmjenzuhxlqnwcsfgxycdv
|
||||
pbxkrmjeizuhxlqnwadfgtyckv
|
||||
pbqkrmjeizuhxlqnwasdgdycdv
|
||||
pbokrmoeizdhxlqnwasfgtycqv
|
||||
pbokrmjejzuhxlqnwksfgtycwv
|
||||
pbfkrmjeieuhxlnnwasfgtycdv
|
||||
pbokrmjeiuuhxlqnpalfgtycdv
|
||||
pbokrmjeizunxyqnwasfgtdcdv
|
||||
pbokrmjeazuhxrqnwasogtycdv
|
||||
pbmkrmjeizuhxlqnwaufgtycdj
|
||||
xbskrmjeipuhxlqnwasfgtycdv
|
||||
tbokrujlizuhxlqnwasfgtycdv
|
||||
xbokvmjeizuhxyqnwasfgtycdv
|
||||
pbnhrmheizuhxlqnwasfgtycdv
|
||||
pboorajrizuhxlqnwasfgtycdv
|
||||
pbokrmjeizuhxminwusfgtycdv
|
||||
pboqrmjeizuhxlqnwaslgtscdv
|
||||
pgokrdjeizuhxlnnwasfgtycdv
|
||||
pbokrmjeizuhxiqnwasvttycdv
|
||||
pbokrmwnizuhzlqnwasfgtycdv
|
||||
pbokrmjlizmhjlqnwasfgtycdv
|
||||
pbwkrmjeizohxlqnwasfgtyzdv
|
||||
pbykrmjmizwhxlqnmasfgtycdv
|
||||
pbokrmjzizuhxeqnwasfgtpcdv
|
||||
pbokrmjewzuhxzqnwasfgtybdv
|
||||
pbokrmjeimupxlonwasfgtycdv
|
||||
pbokrmjvizuhxlqnuasfgtycqv
|
||||
pbokrmjeizjdxlqnwasfetycdv
|
||||
pbofrmjeizurxlqnwasfztycdv
|
||||
pbozrmjeizuhxxqpwasfgtycdv
|
||||
pbovtmjeizuhxlqnwapfgtycdv
|
||||
prokrmjeuzuhxlqnwasfgtycqv
|
||||
ubokrmjeizuhxljnwasfgtdcdv
|
||||
pboknmjepzuhxlqnwasogtycdv
|
||||
pbokrmjaizuaxljnwasfgtycdv
|
||||
pbdkrcjeizuhxlqnwasfgtvcdv
|
||||
pbokymjeizuhxlqnwaxfgtyfdv
|
||||
pbokrmjaizuhxlqnfasfgtyodv
|
||||
pdekrmmeizuhxlqnwasfgtycdv
|
||||
rbokrmjeizuuxlqnwasfgtycdj
|
||||
pbokrmneifuhxlqiwasfgtycdv
|
||||
pbokrmjeizlbxlunwasfgtycdv
|
||||
pbokrmjewzuhxxqnwasfgoycdv
|
||||
pbokrmjeizuhxlqtwasfgtzcdo
|
||||
pbokrmkeizzhxlqnwasfgtycmv
|
||||
pbokrmjeiquhxlqnywsfgtycdv
|
||||
xbokrmjeizjhxlqdwasfgtycdv
|
||||
pbokrmjeizahxzqnzasfgtycdv
|
||||
pbokrmjeizuhxmqmwasfgtytdv
|
||||
pbokrmheiluhxlqnwasfgoycdv
|
||||
rbokrmjeizuhxlqnwaslgtycqv
|
||||
pbbkzmjeizuhxvqnwasfgtycdv
|
||||
pbokrmjeizudxlznwgsfgtycdv
|
||||
pbokemjeizuhxlqnwascgtysdv
|
||||
pbokrmjdizuexlgnwasfgtycdv
|
||||
pbokzmjeizuhxlqnwnsfggycdv
|
||||
pbokrmjeizuhxtqnwasfgiycdy
|
||||
bbokrmjeizuhclunwasfgtycdv
|
||||
pbtkrmjeieuhxlqnwasfgtycrv
|
||||
pbokrmjeizutxlbnwasngtycdv
|
||||
pbokrmjevzumxlqnwasfgtyydv
|
||||
pbokrmjsizuhxlqowasfgtycyv
|
||||
pbssrmjeizuhxlqbwasfgtycdv
|
||||
pbokrmjeizuhflqnwxsfstycdv
|
||||
pbokimjeizuhxlqnwasfgtywdm
|
||||
pbokrmjbizuhxlqdwasfgtygdv
|
||||
pbokrmheizuhxlqxwasfgtycnv
|
||||
poakrmjeizuhylqnwasfgtycdv
|
||||
vbrkrmjeizuhxlqnwaszgtycdv
|
||||
pbokrmjeizuhxiqnudsfgtycdv
|
||||
pbokrldeizuhxlqnwasjgtycdv
|
||||
pbokrmjeizjhflqnwasfgtymdv
|
||||
pbokrmjeizuhxliawasfgtvcdv
|
||||
pbokrmjeisuhtoqnwasfgtycdv
|
||||
nbokrijeizuhxlqnwasfgtycdh
|
||||
pbokrmjeizrhxlqnwxsfztycdv
|
||||
pbotrmjeizuhxlcnwasfgtyvdv
|
||||
pbokrmjewzuhxlquwasfgtjcdv
|
||||
pbosrmjeipuhxlqnwasfgtvcdv
|
||||
pbokrmjebzurxlunwasfgtycdv
|
||||
pbogimieizuhxlqnwasfgtycdv
|
||||
pbokrmjeizihxlqnwasagtyzdv
|
||||
pbokrmjeizuoxlqnausfgtycdv
|
||||
pbokrmjeizuhxlqnwashgbjcdv
|
||||
pbokrdjeizuhxlnnwasfgoycdv
|
||||
pbokrzjtizlhxlqnwasfgtycdv
|
||||
peokrmjexzuhxlqnwasfgoycdv
|
||||
cboprmjeizuhxlqnwasfgfycdv
|
||||
pbitrmjeizjhxlqnwasfgtycdv
|
||||
pbourmjeizuhxldnwjsfgtycdv
|
||||
pboivmjeizuhxlqnwasvgtycdv
|
||||
pbokrmjeiduhxaqnqasfgtycdv
|
||||
pbokicjeiwuhxlqnwasfgtycdv
|
||||
pbokrmmeizulxlqnwasfgtyvdv
|
||||
pbokrmjeieuhxlqnaapfgtycdv
|
||||
pbokxmjeiuuhxlqnwasfgtyqdv
|
||||
pbokrmjeizuhxgqniaslgtycdv
|
||||
pbokrmjeizuuxlqnwisfgtyckv
|
||||
pbovlmjepzuhxlqnwasfgtycdv
|
||||
pbokrmjeizuhxlqdwaqfgtycdj
|
||||
pbztrvjeizuhxlqnwasfgtycdv
|
||||
pbokrmjeizuholunwasfptycdv
|
||||
pbokrmjeizudxlqnwusfgtycqv
|
||||
nbokrmjzizmhxlqnwasfgtycdv
|
||||
pbokrmjeypunxlqnwasfgtycdv
|
||||
pbokrjjxizuhxlqnwasfgtyddv
|
||||
pbokrmjeizuhilqnwiufgtycdv
|
||||
pbokrmjeizuhxtqowasfgfycdv
|
||||
qbokrgjeizuhxlqnwasfgtycdx
|
||||
pvoarmjeizuhxlqnwasfgtfcdv
|
||||
pbokrmjjizuhxlqnwasfggyczv
|
||||
pbtkrmjeizuhnlqncasfgtycdv
|
||||
pbokrmjeizuzxlqnwasfgtyjnv
|
||||
jmokrmzeizuhxlqnwasfgtycdv
|
||||
pbykrmjmizwhxlqnwasfgtycdv
|
||||
nbokrmjeizlhxlqnwasfgtecdv
|
||||
pbokrmjeizuhxlqhwasrgrycdv
|
||||
pbokrmjeiruhxlqnwasfgtnedv
|
||||
pbokrmjeizohxlznwasfgtycuv
|
||||
paokrmjdizuhxlqnwasfktycdv
|
||||
pbokrmjetzutxlqnwasfntycdv
|
||||
pboyrmjeizuhxlqnwasfgtetdv
|
||||
pbokgujeizuhxlqwwasfgtycdv
|
||||
pbokrifeizshxlqnwasfgtycdv
|
||||
sbokrmjeizfhxlqnaasfgtycdv
|
||||
pbokrmjeizuhxlqpwrsfgfycdv
|
||||
pbokxmjeikuhxlqnwasfctycdv
|
||||
fbokrmjhizuhxlqnmasfgtycdv
|
||||
pbekamjeizuhxlqnwaxfgtycdv
|
||||
pboksmpeizuhxlqnwasfgtyclv
|
||||
pbokrmjeizrhxdqnwasfgzycdv
|
||||
pbogrmxeizurxlqnwasfgtycdv
|
||||
pbokrmjeieuhxlqnwqsfgtychv
|
||||
vbokrmjeizuhxlqnwabfgtycdq
|
||||
lbokrmjeizupxlqvwasfgtycdv
|
||||
pbokrmjeizuhglqnuasfgtucdv
|
||||
hbokrmjeizuhelqnwasfgtrcdv
|
||||
pbokrmweizuhxlqnwhsfgtyvdv
|
||||
pbokrmjeizuhxrqnwasfvtccdv
|
||||
pbokrmneizuhxlwnyasfgtycdv
|
||||
ybokymjeqzuhxlqnwasfgtycdv
|
||||
pbousmjeizuhxlqswasfgtycdv
|
||||
pblkimjeizuhxlqnwacfgtycdv
|
||||
psokrmjeizuhxlqnwasfgbpcdv
|
||||
peokrwjeizghxlqnwasfgtycdv
|
||||
pbokrmjeizudxlqnwzsfrtycdv
|
||||
pbotrmjezzxhxlqnwasfgtycdv
|
||||
pkokrmjezzuhxlqnwasfgtycdh
|
||||
pbokrmleizuhxlnnwasfgtyndv
|
||||
pboxwmjeituhxlqnwasfgtycdv
|
||||
pbokrmjeizoczlqnwasfgtycdv
|
||||
pbokomjeizuhxlqnwhsfgtybdv
|
||||
pbhwrmjeizuhxlqnwasfgpycdv
|
||||
pbwkrmjeizuhxeqnwasfgtyidv
|
||||
pbokrmjeizuhxlqnjasfgmicdv
|
||||
tbokrgjeizuhxlqhwasfgtycdv
|
||||
pbolrqjeizuhxlqnhasfgtycdv
|
||||
pbogrhjeizbhxlqnwasfgtycdv
|
||||
pbokrmjeizghxlqnwashgtycdx
|
||||
pbokrmjeizuhrlqnwasfgthcrv
|
||||
pbokrmjeizuhxlqnwfsngtacdv
|
||||
pbokrmxeizuhxlqnwasfotyctv
|
||||
pbokrmjeizuhxlqnwcsfgnocdv
|
||||
pnokbmjeizuhxlqnwasfgtscdv
|
||||
pbowrmjeuzuhxlqnwasfgtycdw
|
||||
pbokrmjeiyuhxlqnwasqgtvcdv
|
||||
pbokrmjeivuhxkpnwasfgtycdv
|
||||
pbokomjeizuhxlqnwasfgtylav
|
||||
pbdkrmjeizuhxlgnwjsfgtycdv
|
||||
pbokrmjeizuaxxqnwasfytycdv
|
||||
pbokrmjerzuhxlqnwasfgtscdk
|
||||
pbokrmzerzuhxlqnwasfntycdv
|
||||
pbokrmjeizumxdqnwasfgtyckv
|
||||
pbtkrmjeizrhxlqnwasfgtjcdv
|
||||
pbmkrmjuizuhxlqnwasfgtytdv
|
||||
pbokpmjeizuhxlqnwastgtzcdv
|
||||
kbokrmjeizuhxlqnwasfgzjcdv
|
33
02/solve01.py
Executable file
33
02/solve01.py
Executable file
@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
def read_input():
|
||||
with open('input.txt', 'r') as f:
|
||||
for line in f:
|
||||
yield line
|
||||
|
||||
|
||||
def get_count(box):
|
||||
occ2 = 0
|
||||
occ3 = 0
|
||||
|
||||
seen = dict()
|
||||
for c in set(box):
|
||||
if occ2 and occ3:
|
||||
break
|
||||
if box.count(c) == 2:
|
||||
occ2 = 1
|
||||
if box.count(c) == 3:
|
||||
occ3 = 1
|
||||
return (occ2,occ3)
|
||||
|
||||
|
||||
res2 = 0
|
||||
res3 = 0
|
||||
|
||||
for box in read_input():
|
||||
(tmp2, tmp3) = get_count(box)
|
||||
res2 += tmp2
|
||||
res3 += tmp3
|
||||
|
||||
|
||||
print(res2*res3)
|
32
02/solve02.py
Executable file
32
02/solve02.py
Executable file
@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
def read_input():
|
||||
with open('input.txt', 'r') as f:
|
||||
for line in f:
|
||||
yield line.strip()
|
||||
|
||||
def compare(a, b):
|
||||
if len(a) != len(b):
|
||||
return None
|
||||
|
||||
change = None
|
||||
for i in range(len(a)):
|
||||
if a[i] != b[i]:
|
||||
if change is None:
|
||||
change = i
|
||||
else:
|
||||
return None
|
||||
return a[:change]+a[change+1:]
|
||||
|
||||
boxes = []
|
||||
result = None
|
||||
for box in read_input():
|
||||
for b in boxes:
|
||||
result = compare(box, b)
|
||||
if result:
|
||||
break
|
||||
if result:
|
||||
break
|
||||
boxes.append(box)
|
||||
|
||||
print(result)
|
1311
03/input.txt
Normal file
1311
03/input.txt
Normal file
File diff suppressed because it is too large
Load Diff
33
03/solver01.py
Executable file
33
03/solver01.py
Executable file
@ -0,0 +1,33 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import re
|
||||
|
||||
RE_LINE = re.compile('^#(\d+) @ (\d+),(\d+): (\d+)x(\d+)$')
|
||||
plan = dict()
|
||||
|
||||
|
||||
def read_input():
|
||||
with open('input.txt', 'r') as f:
|
||||
for line in f:
|
||||
yield line.strip()
|
||||
|
||||
def hash_position(x, y):
|
||||
return "{}x{}".format(x,y)
|
||||
|
||||
|
||||
for claim in read_input():
|
||||
m = RE_LINE.match(claim)
|
||||
if not m:
|
||||
raise Exception("unparsable input: {}".format(claim))
|
||||
|
||||
for x in range(int(m.group(4))):
|
||||
for y in range(int(m.group(5))):
|
||||
hash = hash_position(x+int(m.group(2)), y+int(m.group(3)))
|
||||
if hash not in plan:
|
||||
plan[hash] = []
|
||||
plan[hash].append(int(m.group(1)))
|
||||
|
||||
overlap = [ k for k,v in plan.items() if len(v) > 1]
|
||||
|
||||
print(len(overlap))
|
||||
|
39
03/solver02.py
Executable file
39
03/solver02.py
Executable file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import re
|
||||
|
||||
RE_LINE = re.compile('^#(\d+) @ (\d+),(\d+): (\d+)x(\d+)$')
|
||||
plan = dict()
|
||||
all = dict()
|
||||
overlap = dict()
|
||||
|
||||
def read_input():
|
||||
with open('input.txt', 'r') as f:
|
||||
for line in f:
|
||||
yield line.strip()
|
||||
|
||||
def hash_position(x, y):
|
||||
return "{}x{}".format(x,y)
|
||||
|
||||
|
||||
for claim in read_input():
|
||||
m = RE_LINE.match(claim)
|
||||
if not m:
|
||||
raise Exception("unparsable input: {}".format(claim))
|
||||
|
||||
for x in range(int(m.group(4))):
|
||||
for y in range(int(m.group(5))):
|
||||
hash = hash_position(x+int(m.group(2)), y+int(m.group(3)))
|
||||
claim_id = int(m.group(1))
|
||||
all[claim_id] = True
|
||||
if hash not in plan:
|
||||
plan[hash] = []
|
||||
plan[hash].append(claim_id)
|
||||
if len(plan[hash]) > 1:
|
||||
overlap[plan[hash][-1]] = True
|
||||
overlap[plan[hash][-2]] = True
|
||||
|
||||
all = set(all.keys())
|
||||
overlap = set(overlap.keys())
|
||||
|
||||
print(all - overlap)
|
Loading…
x
Reference in New Issue
Block a user