def solve(): count = 0 ranges = file_reader('day4') A = int(ranges[0]) B = int(ranges[1]) for i in range(A, B): if adjacent(str(i)) and increase(i): count += 1 return count
def solve(): text_input = file_reader("day1part1") masses = [int(x) for x in text_input] res = 0 for m in masses: temp = m while fuel_req(temp) > 0: temp = fuel_req(temp) res += temp return res
def solve(noun: int, verb: int) -> int: code = file_reader("day2") list_code = code[0].split(",") intcode = [int(x) for x in list_code] i = 0 intcode[1] = noun intcode[2] = verb while intcode[i] != 99: if intcode[i] == 1: intcode[intcode[i+3]] = intcode[intcode[i+1]] + intcode[intcode[i+2]] if intcode[i] == 2: intcode[intcode[i+3]] = intcode[intcode[i+1]] * intcode[intcode[i+2]] i += 4 cur = intcode[i] return intcode[0]
def solve(): text_input = file_reader("day1part1") masses = [int(x) for x in text_input] return sum([fuel_req(m) for m in masses])
from aoc import file_reader import sys import collections import numpy as np data = file_reader('day8') data = data[0] def solve(width, height): num_pixels = width*height num_layers = len(data) // num_pixels min_zero = sys.maxsize ans = 0 picture = data # brute force while picture: cur_layer = picture[:width*height] picture = picture[width*height:] num_zero = cur_layer.count('0') if num_zero < min_zero: min_zero = num_zero ans = cur_layer.count('1')*cur_layer.count('2') print("Part 1 :", ans) for i in range(num_pixels): for j in range(num_layers): if data[(j*num_pixels)+i] != "2": print("X" if data[(j*num_pixels)+i] == "1" else " ", end="") break
from aoc import file_reader code = file_reader("day3") A = code[0].split(",") B = code[1].split(",") directions = {'R': (1, 0), 'D': (0, 1), 'L': (-1, 0), 'U': (0, -1)} def solve(K): x = 0 y = 0 dist = 0 res = {} for i in K: d = i[0] length = int(i[1:]) for j in range(length): x += directions[d][0] y += directions[d][1] dist += 1 if (x, y) not in res: res[(x, y)] = dist return res solvedA = solve(A) solvedB = solve(B)
import math from aoc import file_reader with open("day10.in") as f: content = f.readlines() allAsteroids = file_reader("day10") def countAsteroids(loc, asteroids): ''' take the slope of location and the asteroid, return a set of the gcd-reduced slopes ''' found = set() for asteroid in asteroids: if asteroid != loc: dx, dy = asteroid[0] - loc[0], asteroid[1] - loc[1] gcdenom = abs(math.gcd(dx, dy)) reduced_gcd = (dx // gcdenom, dy // gcdenom) found.add(reduced_gcd) return found asteroids = set() for x in range(len(allAsteroids)): for y in range(len(allAsteroids[0])): if allAsteroids[x][y] == "#": asteroids.add((x, y)) ''' Go through each asteroid and total the number of asteroids