Skip to content

Commit f52f614

Browse files
committed
Day 5 - improved solution (thx @KrzaQ)
1 parent 3d07b9c commit f52f614

2 files changed

Lines changed: 12 additions & 20 deletions

File tree

.gitignore

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1 @@
1-
.vscode/*
2-
!.vscode/settings.json
3-
!.vscode/tasks.json
4-
!.vscode/launch.json
5-
!.vscode/extensions.json
1+
.vscode/*

05/solution.py

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,22 @@
1-
import asyncio
2-
3-
data = list(open("data.txt").read())
1+
data = list(open("data.txt").read().rstrip())
42

53
def react(polymer):
6-
i = 0
7-
while(i < polymer.__len__()-1):
8-
if(abs(ord(polymer[i])-ord(polymer[i+1])) == 32):
9-
del polymer[i+1]
10-
del polymer[i]
11-
i = 0
4+
buff = [" "]
5+
for i in range(polymer.__len__()):
6+
if(polymer[i]!=buff[-1] and polymer[i].lower()==buff[-1].lower()):
7+
buff.pop()
128
else:
13-
i = i+1
14-
15-
return polymer.__len__()
9+
buff.append(polymer[i])
10+
return buff.__len__()-1
1611

17-
print(react(data))
12+
# First part
13+
print(f"First part: %i" % react(data))
1814

1915
# Second part
20-
components = list(zip(sorted(set(open("data.txt").read().upper())), sorted(set(open("data.txt").read().lower()))))
16+
components = list(zip(sorted(set([x.upper() for x in data])), sorted(set([x.lower() for x in data]))))
2117

2218
l = []
2319
for x in components:
2420
l.append(react([z for z in data if z not in x]))
2521

26-
print(min(l))
22+
print(f"Second part: %i" % min(l))

0 commit comments

Comments
 (0)