mirror of
https://github.com/danbulant/adventOfCode
synced 2026-05-24 12:30:16 +00:00
code cleanup
This commit is contained in:
parent
2ffbdf3854
commit
24445bee8b
2 changed files with 18 additions and 34 deletions
|
|
@ -6,21 +6,10 @@ partnumbers = []
|
||||||
lineNumber = 0
|
lineNumber = 0
|
||||||
for line in open("./input2"):
|
for line in open("./input2"):
|
||||||
lineNumber += 1
|
lineNumber += 1
|
||||||
# Find all numbers and their positions
|
partnumbers += [(lineNumber, m.group(), m.start(), m.end()) for m in re.finditer(r'\d+', line)]
|
||||||
foundNumbers = [(m.group(), m.start(), m.end()) for m in re.finditer(r'\d+', line)]
|
symbols += [(lineNumber, m.group(), m.start(), m.end()) for m in re.finditer(r'[^\d.\n]', line)]
|
||||||
partnumbers += [(lineNumber, number[0], number[1], number[2]) for number in foundNumbers]
|
|
||||||
# Find all symbols and their positions
|
|
||||||
foundSymbols = [(m.group(), m.start(), m.end()) for m in re.finditer(r'[^\d.\n]', line)]
|
|
||||||
symbols += [(lineNumber, symbol[0], symbol[1], symbol[2]) for symbol in foundSymbols]
|
|
||||||
|
|
||||||
print(symbols)
|
print(sum([
|
||||||
|
int(partnumber[1]) for partnumber in partnumbers
|
||||||
matchingNumbers = []
|
if len([symbol for symbol in symbols if abs(symbol[0] - partnumber[0]) <= 1 and partnumber[2] - 1 <= symbol[2] <= partnumber[3]]) > 0
|
||||||
|
]))
|
||||||
for partnumber in partnumbers:
|
|
||||||
foundSymbols = [symbol for symbol in symbols if abs(symbol[0] - partnumber[0]) <= 1 and partnumber[2] - 1 <= symbol[2] <= partnumber[3]]
|
|
||||||
if len(foundSymbols) > 0:
|
|
||||||
print(partnumber[1])
|
|
||||||
matchingNumbers.append(partnumber[1])
|
|
||||||
|
|
||||||
print(sum([int(number) for number in matchingNumbers]))
|
|
||||||
|
|
@ -7,21 +7,16 @@ partnumbers = []
|
||||||
lineNumber = 0
|
lineNumber = 0
|
||||||
for line in open("./input2"):
|
for line in open("./input2"):
|
||||||
lineNumber += 1
|
lineNumber += 1
|
||||||
# Find all numbers and their positions
|
partnumbers += [(lineNumber, m.group(), m.start(), m.end()) for m in re.finditer(r'\d+', line)]
|
||||||
foundNumbers = [(m.group(), m.start(), m.end()) for m in re.finditer(r'\d+', line)]
|
symbols += [(lineNumber, m.group(), m.start(), m.end()) for m in re.finditer(r'[^\d.\n]', line)]
|
||||||
partnumbers += [(lineNumber, number[0], number[1], number[2]) for number in foundNumbers]
|
|
||||||
# Find all symbols and their positions
|
|
||||||
foundSymbols = [(m.group(), m.start(), m.end()) for m in re.finditer(r'[^\d.\n]', line)]
|
|
||||||
symbols += [(lineNumber, symbol[0], symbol[1], symbol[2]) for symbol in foundSymbols]
|
|
||||||
|
|
||||||
print(symbols)
|
print(sum(
|
||||||
foundGears = []
|
[
|
||||||
|
math.prod([int(number[1]) for number in foundNumbers])
|
||||||
for symbol in symbols:
|
for symbol, foundNumbers in [
|
||||||
if symbol[1] != '*': continue
|
(symbol, [partnumber for partnumber in partnumbers if abs(symbol[0] - partnumber[0]) <= 1 and partnumber[2] - 1 <= symbol[2] <= partnumber[3]])
|
||||||
foundNumbers = [partnumber for partnumber in partnumbers if abs(symbol[0] - partnumber[0]) <= 1 and partnumber[2] - 1 <= symbol[2] <= partnumber[3]]
|
for symbol in symbols if symbol[1] == '*'
|
||||||
if len(foundNumbers) != 2: continue
|
]
|
||||||
gearRation = math.prod([int(number[1]) for number in foundNumbers])
|
if len(foundNumbers) == 2
|
||||||
foundGears.append(gearRation)
|
]
|
||||||
|
))
|
||||||
print(sum(foundGears))
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue