Run black

This commit is contained in:
Sijmen 2024-01-04 04:42:27 +01:00
parent 9e7415833c
commit d57166fdd7
Signed by: vijfhoek
GPG key ID: DAF7821E067D9C48
15 changed files with 65 additions and 49 deletions

View file

@ -1,6 +1,7 @@
import fileinput
from functools import reduce
def main():
part1 = 0
part2 = 0
@ -32,4 +33,5 @@ def main():
print(part1, part2)
main()

View file

@ -1,5 +1,6 @@
import fileinput
def main():
#
# Part 1
@ -24,4 +25,5 @@ def main():
print(part1, part2)
main()

View file

@ -17,9 +17,7 @@ def transform_ranges(map, ranges):
for start, length in ranges:
# find the start of the range
(dst_start, src_start, len) = next(
(dst, src, len)
for (dst, src, len) in map
if src <= start < (src + len)
(dst, src, len) for (dst, src, len) in map if src <= start < (src + len)
)
end = start + length
@ -53,4 +51,5 @@ def main():
print(part1, part2)
main()

View file

@ -1,6 +1,7 @@
import fileinput
from math import ceil, floor, sqrt
def race(time, dist):
discr = sqrt(time * time - 4 * dist)
x1 = (time - discr) / 2
@ -8,6 +9,7 @@ def race(time, dist):
x1, x2 = floor(x1) + 1, ceil(x2) - 1
return x2 - x1 + 1
def main():
input = list(fileinput.input())
times = [int(x) for x in input[0][11:].split()]
@ -23,4 +25,5 @@ def main():
print(part1, part2)
main()

View file

@ -22,6 +22,7 @@ for line in fileinput.input():
counter = Counter(hand)
INPUT.append((hand, int(bid), counter["J"], counter.most_common() + [("", 0)]))
def solve(part):
STRENGTHS["J"] = 14 if part == 2 else 4
@ -54,6 +55,7 @@ def solve(part):
hands.sort(key=lambda h: h[0], reverse=True)
return sum((i + 1) * bid for (i, (_, bid)) in enumerate(hands))
part1 = solve(part=1)
part2 = solve(part=2)
print(part1, part2)

View file

@ -1,6 +1,7 @@
import fileinput
from collections import deque
def main():
part1 = 0
part2 = 0
@ -22,4 +23,5 @@ def main():
print(part1, part2)
main()

View file

@ -68,11 +68,15 @@ print(part1)
side = set()
for y in range(len(map)):
if map[y][0] == ".": side.add((0, y))
if map[y][-1] == ".": side.add((len(map[0]) - 1, y))
if map[y][0] == ".":
side.add((0, y))
if map[y][-1] == ".":
side.add((len(map[0]) - 1, y))
for x in range(len(map[0])):
if map[0][x] == ".": side.add((x, 0))
if map[-1][x] == ".": side.add((x, len(map) - 1))
if map[0][x] == ".":
side.add((x, 0))
if map[-1][x] == ".":
side.add((x, len(map) - 1))
mapp = []
for (x, row) in enumerate(map):
@ -146,6 +150,6 @@ for y in range(1, len(bigmap), 3):
for x in range(1, len(bigmap[y]), 3):
if bigmap[y][x] == "." or (distances[y // 3][x // 3] is None):
part2 += 1
map[y//3][x//3] = 'I'
map[y // 3][x // 3] = "I"
print(part1, part2)

View file

@ -3,6 +3,7 @@ import math
from pprint import pprint
from itertools import pairwise
def main():
(part1, part2) = (0, 0)
@ -72,5 +73,6 @@ def main():
print(part1, part2)
if __name__ == "__main__":
main()

View file

@ -6,11 +6,13 @@ import re
RE = re.compile(r"[#\?]")
def powerset(iterable):
"powerset([1,2,3]) --> () (1,) (2,) (3,) (1,2) (1,3) (2,3) (1,2,3)"
s = list(iterable)
return chain.from_iterable(combinations(s, r) for r in range(len(s) + 1))
def main():
(part1, part2) = (0, 0)
@ -27,8 +29,8 @@ def main():
if match == groups:
part1 += 1
print(part1, part2)
if __name__ == "__main__":
main()

View file

@ -1,5 +1,6 @@
import sys
def simulate(map, entry):
seen = set()
energised = set()
@ -48,6 +49,7 @@ def simulate(map, entry):
return len(energised)
def main():
with open(sys.argv[1]) as f:
map = [list(l) for l in f.read().strip().splitlines()]

View file

@ -13,7 +13,9 @@ def main() -> None:
pprint(map)
heap: list[tuple[int, tuple[int, int], int, int, tuple[Any, ...]]] = [(0, (0, 0), 0, 0, ())]
heap: list[tuple[int, tuple[int, int], int, int, tuple[Any, ...]]] = [
(0, (0, 0), 0, 0, ())
]
seen = set()
while heap:
(cost, (x, y), dir, straight, trace) = heapq.heappop(heap)
@ -30,7 +32,9 @@ def main() -> None:
if (0 <= (y + dy) < len(map)) and (0 <= (x + dx) < len(map[y])):
newtrace = (*trace, (x + dx, y + dy, dir))
newcost = cost + map[y + dy][x + dx]
heapq.heappush(heap, (newcost, (x + dx, y + dy), dir, straight + 1, newtrace))
heapq.heappush(
heap, (newcost, (x + dx, y + dy), dir, straight + 1, newtrace)
)
newdir = (dir + 1) % 4
(dx, dy) = DIRS[newdir]
@ -65,10 +69,6 @@ def main() -> None:
cost += map[y][x]
print(cost)
if __name__ == "__main__":
main()

View file

@ -32,10 +32,16 @@ def main() -> None:
break
(dx, dy) = DIRS[dir]
if 10 >= (straight + 1) and (0 <= (y + dy) < len(map)) and (0 <= (x + dx) < len(map[y])):
if (
10 >= (straight + 1)
and (0 <= (y + dy) < len(map))
and (0 <= (x + dx) < len(map[y]))
):
newtrace = trace + ((x + dx, y + dy, dir),)
newcost = cost + map[y + dy][x + dx]
heapq.heappush(heap, (newcost, (x + dx, y + dy), dir, straight + 1, newtrace))
heapq.heappush(
heap, (newcost, (x + dx, y + dy), dir, straight + 1, newtrace)
)
if 11 >= (straight + 1) > 4:
newdir = (dir + 1) % 4
@ -64,6 +70,7 @@ def main() -> None:
print("\n".join("".join(line) for line in path))
print(cost)
if __name__ == "__main__":
main()

View file

@ -1,5 +1,6 @@
import sys
def part1(workflows: dict[str, list[list[str]]], ratings: str) -> int:
result = 0
@ -76,6 +77,7 @@ def part2(workflows: dict[str, list[list[str]]]) -> int:
s = (value, s[1])
return result
def main() -> None:
with open(sys.argv[1]) as f:
(workflows_, ratings) = f.read().split("\n\n")
@ -90,5 +92,6 @@ def main() -> None:
p2 = part2(workflows)
print(p1, p2)
if __name__ == "__main__":
main()

View file

@ -1,2 +1,3 @@
import fileinput
list(fileinput.input())

View file

@ -1,15 +0,0 @@
import fileinput
import math
from pprint import pprint
def main():
(part1, part2) = (0, 0)
inp = fileinput.input()
for line in inp:
pass
print(part1, part2)
if __name__ == "__main__":
main()