Advent of Code Solutions

I have set myself a personal challenge to try and get up to date with advent of code, a set of programming challenges released each December.

Each day has 2 related problems, for a total of 50 problems per year. Each button below will show my code solving that problem. Green buttons where I have solved both problems of the day, orange where I have only solved the first one and red where I haven't solved either.

2015 2016 2017 2018 2019 2020 2021 2022 2023 2024
Not started
Part 1 completed
Both parts completed
from util.input import get_input

def part_1():

    puzzle_input = get_input(2015, 2)

    total_paper = 0
    for dims in puzzle_input.split('\n')[:-1]:
        l, w, h = map(int, dims.split('x'))
        s1 = l*w
        s2 = l*h
        s3 = w*h

        total_paper += 2*(s1 + s2 + s3) + min(s1,s2,s3)

    return total_paper

def part_2():
    
    puzzle_input = get_input(2015, 2)

    total_ribbon = 0
    for dims in puzzle_input.split('\n')[:-1]:
        l, w, h = sorted(map(int, dims.split('x')))

        total_ribbon += 2*(l+w) + (l*w*h)

    return total_ribbon