Add solution for day 13

This commit is contained in:
Maya Herrscher committed 2021-12-14 05:58:21 +01:00
1 parent 279f8ed7aa
commit ac4b409df4
4 files changed
+1095

No files matched your search

+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/env python3
import sys
def printi(dots):
st = ''
for y in range(max(dots,key=lambda x: x[1])[1]+1):
for x in range(max(dots,key=lambda x: x[0])[0]+1):
if (x,y) in dots: st += '#'
else: st += '.'
print(st)
st = ''
def fold(f, dots):
ndots, c = set(), f[1]
if f[0] == 'x': r = 0
elif f[0] == 'y': r = 1
for dot in dots:
if dot[r] < c: ndots.add(dot)
elif dot[r] > c: ndots.add([(c-(dot[0]-c),dot[1]), (dot[0],c-(dot[1]-c))][r])
return ndots
if __name__ == '__main__':
lines = open(sys.argv[1]).read().split('\n\n')
dots = set([tuple(map(int, line.split(','))) for line in lines[0].split('\n')])
folds = [i for i in map(lambda x: (x[0],int(x[1])), [tuple(line.strip('fold along ').split('=')) for line in lines[1].split('\n')[:-1]])]
# challenge 1
res1 = str(sum(1 for dot in fold(folds[0], dots)))
print("challenge 1:" + "\n" + res1 + "\n")
# challenge 2
for f in folds: dots = fold(f,dots)
printi(dots)
res2 = "read yourself please xD"
print("challenge 2:" + "\n" + res2 + "\n")