Doing some 2015 exos for fun

This commit is contained in:
Ethanell 2019-12-01 17:44:00 +01:00
parent f41eb99256
commit 21f447c67a
20 changed files with 4113 additions and 0 deletions

9
2015/day 1/P1/flor.py Normal file
View file

@ -0,0 +1,9 @@
instructions = open("input.txt").read()
flor = 0
for i in list(instructions):
if i == "(":
flor+=1
elif i == ")":
flor-=1
print(flor)

1
2015/day 1/P1/input.txt Normal file

File diff suppressed because one or more lines are too long

10
2015/day 1/P2/flor.py Normal file
View file

@ -0,0 +1,10 @@
instructions = open("input.txt").read()
flor = 0
for c, i in enumerate(list(instructions)):
if i == "(":
flor+=1
elif i == ")":
flor-=1
if flor == -1:
break
print(c+1)

1
2015/day 1/P2/input.txt Normal file

File diff suppressed because one or more lines are too long

1000
2015/day 2/P1/input.txt Normal file

File diff suppressed because it is too large Load diff

9
2015/day 2/P1/paper.py Normal file
View file

@ -0,0 +1,9 @@
boxs = open("input.txt").read().split("\n")[:-1]
paper = 0
for i in list(boxs):
i = i.split("x")
dim1 = (int(i[0])*int(i[1]))
dim2 = (int(i[1])*int(i[2]))
dim3 = (int(i[2])*int(i[0]))
paper+=2*dim1+2*dim2+2*dim3+min([dim1, dim2, dim3])
print(paper)

1000
2015/day 2/P2/input.txt Normal file

File diff suppressed because it is too large Load diff

6
2015/day 2/P2/ribbon.py Normal file
View file

@ -0,0 +1,6 @@
boxs = open("input.txt").read().split("\n")[:-1]
ribbon = 0
for i in boxs:
i = sorted([int(j) for j in i.split("x")])
ribbon+=(i[0]*2+i[1]*2)+(i[0]*i[1]*i[2])
print(ribbon)

View file

@ -0,0 +1,17 @@
instructions = open("input.txt").read()
x = 0
y = 0
house = ["0;0"]
delivery = 0
for i in list(instructions):
if i == "^":
y+=1
elif i == "v":
y-=1
elif i == ">":
x+=1
elif i == "<":
x-=1
if f"{x};{y}" not in house:
house.append(f"{x};{y}")
print(len(house))

1
2015/day 3/P1/input.txt Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,18 @@
instructions = open("input.txt").read()
cords={"Santa": [0,0], "Robot Santa": [0,0]}
house = ["0;0"]
delivery = 0
turn = "Santa"
for i in list(instructions):
if i == "^":
cords[turn][1]+=1
elif i == "v":
cords[turn][1]-=1
elif i == ">":
cords[turn][0]+=1
elif i == "<":
cords[turn][0]-=1
if f"{cords[turn][0]};{cords[turn][1]}" not in house:
house.append(f"{cords[turn][0]};{cords[turn][1]}")
turn = "Santa" if turn == "Robot Santa" else "Robot Santa"
print(len(house))

1
2015/day 3/P2/input.txt Normal file

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,6 @@
import hashlib
key = open("input.txt").read().replace("\n", "")
num=0
while hashlib.md5(f"{key}{num}".encode()).hexdigest()[:5] != "00000":
num+=1
print(num)

1
2015/day 4/P1/input.txt Normal file
View file

@ -0,0 +1 @@
yzbqklnj

View file

@ -0,0 +1,6 @@
import hashlib
key = open("input.txt").read().replace("\n", "")
num=0
while hashlib.md5(f"{key}{num}".encode()).hexdigest()[:6] != "000000":
num+=1
print(num)

1
2015/day 4/P2/input.txt Normal file
View file

@ -0,0 +1 @@
yzbqklnj

1000
2015/day 5/P1/input.txt Normal file

File diff suppressed because it is too large Load diff

11
2015/day 5/P1/string.py Normal file
View file

@ -0,0 +1,11 @@
strings = open("input.txt").read().split("\n")[:-1]
nice = 0
for i in strings:
if i.count("a")+i.count("e")+i.count("i")+i.count("o")+i.count("u") >= 3 \
and not ("ab" in i or "cd" in i or "pq" in i or "xy" in i):
for j in list(i):
if f"{j}{j}" in i:
nice+=1
break
print(nice)

1000
2015/day 5/P2/input.txt Normal file

File diff suppressed because it is too large Load diff

15
2015/day 5/P2/string.py Normal file
View file

@ -0,0 +1,15 @@
strings = open("input.txt").read().split("\n")[:-1]
nice = 0
for i in strings:
double = False
for j in range(len(i)-1):
if i.count(f"{i[j]}{i[j+1]}") >= 2 and f"{i[j]}{i[j]}{i[j]}" not in i:
double = True
break
for j in range(len(i)):
f2 = i.find(i[j], j+1)
if f2-j == 2 and double:
nice+=1
break
print(nice)