diff --git a/day-18/day-18.py b/day-18/day-18.py index 3b1bd5b..458bfb7 100644 --- a/day-18/day-18.py +++ b/day-18/day-18.py @@ -2,25 +2,6 @@ from pathlib import Path -def parse(line): - if ',' not in line: - return int(line) - line = line[1:-1] - level = 0 - split_idx = 0 - for i, c in enumerate(line): - if '[' == c: - level += 1 - elif ']' == c: - level -= 1 - elif 0 == level and ',' == c: - split_idx = i - break - left = parse(line[:split_idx]) - right = parse(line[split_idx + 1:]) - return (left, right) - - def explode_to_left(n, l): (left, right) = n res = True @@ -123,10 +104,11 @@ def part_1(input): n = None for line in input: line = line.rstrip() + nn = eval(line.replace('[', '(').replace(']', ')')) if not n: - n = parse(line) + n = nn continue - n = (n, parse(line)) + n = (n, nn) res = True while res: while res: @@ -140,8 +122,7 @@ def part_2(input): result = 0 nbrs = set() for line in input: - line = line.rstrip() - nbrs.add(parse(line)) + nbrs.add(eval(line.rstrip().replace('[', '(').replace(']', ')'))) for n1 in nbrs: for n2 in nbrs: if n1 == n2: