Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #3
0
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]
Beispiel #4
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])
Beispiel #5
0
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
Beispiel #6
0
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)
Beispiel #7
0
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