diff --git a/day1/day1.py b/day1/day1.py index 753bab14866f3202ac2baa85347b5c764b7fb7bf..47374cdb52c285269c4b8f4c19b271767947f86d 100644 --- a/day1/day1.py +++ b/day1/day1.py @@ -27,6 +27,13 @@ def reverse_sort_carried_calories(): return sum(elves[:3]) +# Day 1 - Part 1 Solution in one line by +# https://www.reddit.com/r/adventofcode/comments/z9ezjb/comment/iyghuum/?utm_source=share&utm_medium=web2x&context=3 +def one_line(): + print(max([sum(list(map(int, line.split()))) for line in open('input.dat').read().split('\n\n')])) + + if __name__ == '__main__': print(calculate_max_calories()) - print(reverse_sort_carried_calories()) \ No newline at end of file + print(reverse_sort_carried_calories()) + one_line() \ No newline at end of file diff --git a/day2/day2.py b/day2/day2.py new file mode 100644 index 0000000000000000000000000000000000000000..5e199fe114894bf3ac71ed5a7742b466f8518061 --- /dev/null +++ b/day2/day2.py @@ -0,0 +1,40 @@ +import ../util.py + +# Day 2 - Part 1 +def rock_paper_scissor_guide_result(): + score_rps = {"X": 1, "Y": 2, "Z": 3} + game_rps = {"A X": 3, "A Y": 6, "A Z": 0, + "B X": 0, "B Y": 3, "B Z": 6, + "C X": 6, "C Y": 0, "C Z": 3} + print(score_rps) + score = 0 + with open("./input.dat") as file: + for line in file: + #print(line) + player1, player2 = line.split() + print(f"{player2}: {score_rps[player2]}") + score += score_rps[player2] + print(f"{line.strip()}: {game_rps[line.strip()]}") + score += game_rps[line.strip()] + print(score) + + +# Day 2 - Part 2 +def rock_paper_scissor_guide_result2(): + score_rps = {"X": 0, "Y": 3, "Z": 6} + game_rps = {"A X": 3, "A Y": 1, "A Z": 2, + "B X": 1, "B Y": 2, "B Z": 3, + "C X": 2, "C Y": 3, "C Z": 1} + score = 0 + with open("./input.dat") as file: + for line in file: + player1, result = line.split() + print(f"{result}: {score_rps[result]}") + score += score_rps[result] + print(f"{line.strip()}: {game_rps[line.strip()]}") + score += game_rps[line.strip()] + print(score) + +if __name__ == '__main__': + #rock_paper_scissor_guide_result() + rock_paper_scissor_guide_result2() diff --git a/day2/input.dat b/day2/input.dat new file mode 100644 index 0000000000000000000000000000000000000000..d9dd32ccf6e2744bb11afceb5fd1e4ffe84e92d8 --- /dev/null +++ b/day2/input.dat @@ -0,0 +1,2500 @@ +A X +A Z +A Z +A X +A X +B X +C Y +B X +A Z +A X +A X +A X +A X +B X +A X +B X +A Z +A Z +A X +A X +A Z +A Z +A Z +A X +A Z +A X +C Y +C Z +A X +B X +A X +A X +A X +A Z +B X +A X +B X +C Y +A X +A Z +A Y +A X +A Z +A X +A Z +B X +A X +A Z +B X +A X +A Z +A X +A Z +A Z +A X +B X +B X +B X +B Z +A Z +B Z +A X +A X +A Z +A X +B Z +B Y +A Z +B X +A Y +B X +C X +B Z +B X +C Y +A Z +A X +A X +C Y +B X +A X +A Y +A X +A X +A Y +A Z +C Z +A Z +B X +B X +A X +B X +A X +A X +B Y +B X +A Z +B X +B X +A X +B Z +C Z +A Z +C Z +B X +B X +A Z +A X +A X +B X +A Z +B X +A Z +A X +A X +A X +B X +B X +B X +B X +A X +A Y +A X +B X +A Z +A X +A X +A X +C Y +A X +B X +A X +A Z +A X +B X +A Y +B X +C Z +A Y +A X +B Y +A X +B X +A X +A X +A X +B X +A X +A X +A Z +A Z +A X +C Y +B X +B X +A Z +B X +B Y +C Y +A X +A X +B Y +A X +B Y +B X +B X +A X +A Z +B X +B X +A Y +A X +C Y +C Y +C Y +A X +B X +A X +A X +A X +B X +B X +C Y +A X +A Z +A Z +A X +B X +A Z +A Z +A X +B X +A X +A Z +A X +C Z +B X +A X +C Y +C Y +A Z +B X +B Z +C Y +B X +A Y +B Y +A Z +A X +A X +B X +B Y +A Z +A X +B X +A X +C X +C Y +A X +B X +A Z +A X +B X +A X +C Y +C Y +C Y +A X +A X +A Z +A X +C Y +A Z +B Y +A X +C Y +B Z +B X +B X +A Z +B X +A Y +C X +A X +B X +A Z +C Y +A X +A Z +C Z +A X +C Y +B X +C Y +C Z +A Y +A Z +C Y +A X +A X +A X +A Y +B X +B X +C Y +C Y +A X +A Z +C Y +B Z +B X +C Z +B X +B X +C Z +A X +A X +B X +B X +A X +A X +B X +B X +B X +C Y +A X +A X +A X +A X +B X +A X +A X +B X +B Z +A X +B X +A X +C Y +B Y +A X +B X +A Y +B Z +B X +A X +B Z +B X +A Y +A X +B X +A X +A Z +B X +A X +A X +C Z +A X +B X +A X +B Y +A Z +A X +B X +A X +A Z +B X +B X +B Y +B X +A X +C Y +A X +A X +B X +B Y +A X +A X +A X +C Z +C Z +B Y +B X +B Z +A X +A Y +A X +C Y +B X +A X +A X +A X +A Z +C Y +A X +A X +C Y +A X +A X +A X +A Z +A Y +A X +A Y +C Z +A Z +A X +B X +A Z +C Z +C Y +A Z +A Z +C Y +C Z +C Z +A X +B X +B X +B Z +C Y +A X +A X +A X +A Z +A X +B X +B X +C X +A X +A X +B X +A Y +A X +A X +B Y +C Z +A X +A X +A Y +B X +B X +B X +C Z +A Z +A Y +B Y +A X +B X +B X +B X +B Z +A Y +B Y +A Z +A Z +C Z +B X +A X +A Y +A Y +C Y +B Y +A X +A X +A X +A X +B Y +A X +A Y +A X +A Z +B X +B X +A Y +A X +A Y +A Y +A Z +B X +B X +A Z +B X +A X +A Z +A Z +B X +A Z +A X +A Y +A Z +A X +A Z +B Y +A X +C Y +B X +C X +C Y +B Z +C Y +C Y +A X +A X +A Y +B X +C Z +B X +C Y +A X +A Z +C Y +A X +A Z +A Z +B Y +A X +A X +B X +B Y +A X +A X +B X +A X +B X +A X +B X +A X +B Y +A Z +B X +B X +B X +B X +A Y +A X +A Y +A Y +C Z +B Z +A X +B Y +A X +C Z +B X +A X +A X +A X +A X +A X +C Z +C Z +C Z +A X +C Y +A X +C X +C Z +A X +B X +A Z +A Z +A Z +A X +A Z +A Z +B Z +A X +B X +A Z +C Y +A X +A Z +A Z +A Z +B Z +B X +A X +B X +B X +B X +B X +B Y +B X +A X +A X +A Z +A Z +A Z +B Y +A X +A X +A Y +B X +B X +A Z +A X +B X +A X +A X +A Z +C Y +A X +B X +A X +B X +A X +B X +A Z +B X +A X +A Z +A Z +B X +A Y +A X +A Z +C Y +A X +A X +A X +B Y +B X +A Y +A Z +C X +B X +C Y +A X +B X +C Z +C Z +A X +B X +B X +B Y +B X +B X +A X +A Z +B Z +B X +A X +B X +B X +B X +A Z +A X +A X +A Z +B Y +B Z +A X +A Z +A Z +A Z +A X +A X +A X +A X +A X +A X +B X +A Z +B Z +A X +A Z +C Y +A Z +A X +A Y +A Y +B X +B Y +A Z +A X +B X +B Y +A X +B X +A X +B X +B X +C Y +A Z +B X +A X +B X +A X +A Z +A X +A Z +A X +A X +A X +B X +A Y +A X +A X +B X +C Z +B X +A X +C Y +A X +B X +A Z +B Y +B Z +A X +A X +A X +C Y +A X +A X +A X +B X +C Z +A Z +A X +C Z +B X +A Z +A Y +C Y +C Y +A Z +B X +C Z +C Z +A X +A X +A X +A X +A X +B X +C Y +A Z +A X +B X +A Z +A X +A Y +A X +B Z +A X +B X +A X +A X +A X +A Y +B X +C Y +A X +A Z +C Y +A Z +A X +A Y +A X +A Z +A X +A Y +C Y +A Y +A Z +A X +A X +A X +A Z +A X +B X +A Y +A X +B X +A X +A X +B X +A X +B X +C Z +B X +A Z +A Z +C Y +B Y +B X +A Y +B X +B X +A Y +A X +C X +C Y +B X +A X +C X +C Z +A X +A Z +B X +B Z +C Y +A X +C Y +A Y +B X +B Y +A X +C Y +A Z +A X +A X +C Y +C Y +A X +A Z +B X +A Y +B X +A Z +A Z +A Z +A Z +A X +C Z +B X +B Y +A X +A Y +A X +B X +C Y +C Z +B Z +B X +B Z +A X +A Z +C Y +A X +B Y +A X +A Z +A X +C Z +A X +A Y +B Y +A X +A X +A X +A Z +B X +B X +B X +A X +C Y +C X +C Y +C Z +A X +A X +A Z +A Z +A X +A X +A X +A X +A X +A X +A X +C Z +A X +B X +A Z +B X +B X +B X +A Y +A X +A X +B X +A X +B X +A Z +C Y +B Y +C Z +B Y +B X +B X +A X +C Z +A X +B Y +C Y +B Y +A Z +A Y +A X +A X +C Y +B X +B X +A Z +A X +C Y +C Y +A Y +A Z +B X +C Z +A Z +C Y +A X +A X +A Z +B X +A X +A X +A Z +B X +C Z +A X +A X +B X +B Y +A Z +A X +B X +A X +C Y +B X +B X +B Z +C Y +A X +B X +A X +A X +A Y +A Y +A Z +B X +A Z +B Y +B X +A X +B Y +A X +A X +A Z +A X +B X +A Z +A X +A Z +B X +B X +B X +B Z +C Y +A Y +A Y +A Z +A X +B X +B X +A X +A X +B Y +A X +B X +A Z +B Z +B X +C Y +A Z +A X +C Z +A Y +A Y +B X +A Y +C Z +A Z +A X +B X +A Z +C Y +C X +B X +B Z +A X +A Y +A X +B X +A X +A X +C Y +B Z +B Z +B Y +C Z +C Y +B X +B Y +C Y +A Z +B X +A X +A X +A X +A X +A X +A X +B X +B X +B X +A X +C Y +A X +A Y +A Z +B Y +C Y +A Z +A X +A X +A Z +A Y +B X +A Y +A X +A X +C Z +A X +A X +B X +A X +A Z +A Z +A X +A X +A X +B X +A X +A X +A X +A Z +A X +B X +B Z +C Y +A X +A Z +B X +B X +B X +A X +B X +A X +B X +A Y +B Y +C Y +A X +C Z +B Z +A Z +A X +A X +A Z +A Y +A Z +A X +A X +B X +A X +A X +A Z +C Z +B X +B Y +A Z +B X +A Z +A X +A X +A X +C Y +C Y +A Z +A X +A X +B Y +A Y +A X +B Z +B X +B Z +B X +B Y +B X +A Y +A Z +C Y +B X +A X +A X +B X +B Z +A X +C X +A X +A X +A X +A X +A X +A X +B X +A X +C Z +A Y +B X +B X +B Z +A X +B X +B Z +B X +A Z +A X +B X +A X +A Y +B X +A Z +C Z +B X +C Z +A X +A X +C Y +A Z +C Y +A Z +A X +B X +A X +C Y +A Z +A X +A X +B X +B X +A Z +B Y +B X +A X +A Z +A X +B X +A X +A Z +A Z +A Y +A Y +A X +C Z +A Z +A Z +A X +B X +A Y +B Z +A X +A Z +A X +C Z +B X +A Z +C Z +A X +C X +A Z +A X +A X +B Z +A X +B X +A X +B X +C Z +A X +B X +A Z +B X +C Y +B X +A Z +A X +A Y +C Z +A Z +B X +A Z +A Y +A Z +B X +A X +B X +C Y +B X +A X +C Y +A X +A X +B Y +A X +B Y +A X +A X +A X +B X +A X +A X +C Z +A X +B X +A Y +A Y +B Z +A Z +A Y +A X +B X +B Y +A Z +B Y +A X +A Z +A X +A Z +B X +A X +A X +B X +A Y +B X +B X +A X +A Z +B X +A Y +B X +A Z +B X +B X +B X +B X +A Y +A Z +B X +B Y +B X +C Y +C Y +C Y +B X +B X +A Y +A X +B X +B X +A X +B X +A X +A Z +A Z +A Z +B X +A X +A X +A Y +A X +A X +C Y +B X +C Y +A X +A Y +C Z +A X +B X +A Z +A X +A X +A Z +A X +B Z +A X +A Z +A X +C Y +A Y +C X +A X +C Y +B X +B X +A Z +A X +A X +A X +B X +A X +C Y +C Y +A Y +A X +C Z +A X +B X +B Y +A Z +A X +B X +B X +A X +A Z +C Y +B X +A Y +A X +A Z +B X +A X +A Z +B X +A Y +B Z +A Z +C Z +C Y +A Z +A X +A X +A Z +B X +A X +B X +A X +A X +B X +A Z +A X +C Z +B X +A Z +B Y +A Z +A X +A Z +B X +A X +A X +A Y +B X +C Z +B X +A X +A X +A Z +B X +C X +B X +B X +A Z +B Y +B X +A Z +C Y +A X +A X +B X +B X +A X +B X +A Z +A X +A X +A Z +A X +A X +B X +B X +A X +A Z +A Y +A X +A X +C Y +B X +A X +B X +C Z +A Z +B X +A X +A X +A X +C Y +A X +A X +A X +A Z +B Y +B X +A X +A X +A Z +B X +C Z +B X +A Z +A Z +A X +A Y +B Y +B X +A Z +A Z +A X +A Y +B X +A X +A Z +B X +A Y +A Z +A Z +B X +C Z +A X +A X +B X +B X +A X +A Y +A Y +C Z +B X +A X +A Z +C Y +B X +A Z +A X +B X +B Y +A X +B X +A Y +B X +A X +A Z +B X +B X +C Y +B X +B X +B Y +A X +A X +B X +B X +A X +B X +C Y +A X +A X +A Z +A Z +B X +A Y +B X +B Y +A X +A Z +A X +A Z +A X +B Y +B X +B X +A X +B X +A X +B X +B X +A X +B X +C X +A Z +A Z +A X +A X +A Z +A X +B X +A X +A X +A Z +A Z +A X +A X +B X +C Y +A Z +A X +A X +A Y +A X +B Z +C Z +A Z +B X +A X +B X +A X +B X +B X +A Y +B Y +A X +B X +B Y +C Y +B Z +B Y +B Y +A Z +A X +A Y +A X +A Z +A Z +A X +A X +A X +A X +A Y +C Y +A X +A Y +A Z +A Z +B X +A X +A X +A Z +B Y +B X +B X +A X +B Z +B Z +A Y +B X +A Y +A X +B X +C Z +A X +A Y +B X +A X +B Z +C Y +A Z +A X +A Z +A X +A X +A X +A X +C Y +B X +A X +A X +C Y +C Y +A Z +C Y +A Z +A Y +C X +B X +C Y +A Z +A X +B X +B Z +B X +B X +B X +B X +B X +A X +A Z +B X +A Y +A X +A Y +B X +A X +A X +A X +B Z +B Z +B X +B X +A Y +A X +B Y +B X +B Y +C Y +A X +A X +C Y +A X +B X +B X +B X +C Z +B X +A Z +B X +B X +A X +B Z +A Z +A Z +A X +A Z +A Y +A Z +B X +A X +B X +A X +A X +A X +B X +A X +B X +A X +A X +B X +A Z +A X +A Z +C Y +A X +B X +A X +A X +B X +B X +C Z +A X +A X +B X +A X +A Y +A X +A X +A Z +A X +A X +B X +A X +A X +A X +A Y +C Z +A Z +A Z +A X +B X +A Z +A X +A X +A X +C Y +C Y +A Z +C Y +B X +A X +B X +B X +A Z +A Z +A Y +B X +A Z +A X +A Z +A X +A X +A X +A Z +A Z +B X +A X +A X +B X +B X +A Z +B X +A X +A X +B X +B X +B X +A X +A X +A Z +A X +A X +B Y +B Y +C Y +A Y +A Y +B X +B X +C Y +A X +B X +A X +A X +A Z +A Y +A X +B X +A X +B X +A X +A Z +A X +C Y +B X +B X +A X +B X +A X +A X +A Z +C Y +B X +B X +A X +A X +A Z +A Z +B Y +A X +B X +A Y +C Z +B X +A X +A Z +B Y +A Z +B X +B X +B X +A X +A Z +A Z +B Y +A Y +B X +B Y +A Y +A Z +A X +A X +B X +B X +A Y +B X +A X +A X +C Y +B X +A X +C X +C Z +A X +A X +C Y +C Z +A Z +A X +C Y +C Y +C Y +A X +A Y +A Z +A X +C Z +A X +C X +B X +B Y +B Z +A X +A X +A X +A Z +B X +B X +C X +A X +C Z +C Y +A X +A X +B X +B X +A X +A X +A X +A Z +A Z +B X +A Z +B Y +A Y +A Y +A Z +B X +A Y +A X +A X +B X +A Z +B X +A Y +A X +B X +A X +B X +A X +B X +B Z +A Z +A Y +A Z +A X +B X +B X +C Y +B X +A X +B X +A Y +B X +B X +C Y +B X +A Z +A Z +C Y +A X +B X +B X +A X +B X +A Z +A X +A X +A Z +A Z +C Z +A X +A X +A X +A X +A X +A X +A Z +C Y +A X +C Y +A X +B X +C Y +B X +A Y +B X +B X +B X +A X +A X +A X +C Y +A Z +A Z +B X +A X +A Z +B X +B X +A X +A X +B Z +A X +B Z +B X +A X +A X +A X +B X +A X +C Y +A Y +A X +A X +B X +A Y +A X +C Y +C Y +B X +B X +A X +A X +C Y +B Y +C Y +A X +B X +A Y +B Z +B X +B X +A Y +B X +A Z +C Y +B X +B X +B Y +A X +A X +A X +C Y +B X +A Y +B X +A Z +B Y +A X +A X +A X +A X +A X +A X +B X +C Z +B X +B X +A X +A X +C Y +A X +A X +A X +A X +B Z +B X +A Z +B Z +C Z +C Y +B X +B X +C Z +A Z +A Y +A Z +A Y +C Z +A X +A X +A Z +A X +A Z +A X +B Z +B X +B X +C Z +B X +C Y +C Y +B X +A X +A X +A X +B Y +A X +C Y +B Y +C Y +B Y +A Z +B X +A X +A Z +B X +B Z +A Z +A X +A X +A Y +A X +A X +A Z +B X +B X +B X +B X +B X +A X +A X +A X +A Z +A Z +A Y +A X +A Z +A Z +B X +A X +B X +B X +A Z +B Y +A X +A X +A X +A X +B X +A Y +A X +C X +A Z +A X +C Z +C Y +B X +A Z +A Z +B X +C Y +A X +A Z +A X +B Y +C Y +A X +A X +A Z +A X +C Y +A Z +A X +A X +A X +C Y +B X +A X +B Y +A Z +A X +A Z +B X +A Z +A Z +A X +A X +C Z +B X +A Z +A X +B Z +A Z +A Z +B X +A X +A Z +A Y +A X +A Z +A Z +C X +C Z +B X +B X +A Z +A X +B X +A X +A X +A X +A Z +B X +A Z +A X +B X +A X +A X +C Z +B X +C Y +A X +B X +A Z +A Z +A X +B Z +B X +A Z +A Z +A X +C Y +A X +B X +C Y +B X +B X +A Z +B X +A Z +C Y +B X +A Y +B X +A Z +B Z +A Z +B X +A X +B Z +A X +A Y +B Z +C Y +C Y +B X +A X +A X +A X +A X +B Z +A X +A X +A X +C Y +C X +B Y +B X +B X +B X +A Y +A X +A Z +A X +B X +A Z +C Y +A X +A Z +A Z +A X +A X +A X +A X +A Z +A X +A X +B X +C Z +B X +C Z +B Y +B X +A Z +A Z +A Z +B Y +A Y +A Z +B X +C Y +A X +B X +A Z +C Y +A Y +B X +A X +A Y +A X +A Z +B X +A Z +B Y +B X +A X +B X +A X +A X +A X +A Y +B X +A Y +A X +B X +A X +A X +C Y +A X +A X +B Z +A Z +A Z +A X +C Y +B X +B X +C Y +A Z +C Y +A X +A X +B X +B X +A X +A Z +B Y +B X +A Z +B X +A X +B X +A Z +C Y +A X +B X +A X +A X +A Z +A X +B X +C Z +A X +A X +A Y +B X +A Z +B X +B X +B Y +A X +A Z +A X +A Z +B X +B X +A X +A X +B Z +A X +C Y +B X +A X +A Z +A Z +B X +C Y +C Y +B Y +A Z +C Z +A X +B X +A X +A X +B Y +B X +A X +A X +A Y +A Z +B X +A X +A X +A Z +A X +A X +B X +B X +A Y +A X +B X +A Z +B Z +B X +A Z +A X +A Z +B X +C Y +A X +A X +B X +A Z +B X +A Z +C Z +A Z +A X +C Y +A X +B X +B Z +A X +B X +C X +A X +B Y +A X +A X +C Y +A X +B Y +A X +A X +A X +B X +A X +B X +A Z +C Y +A X +C Z +A X +B X +A Z +A X +C Z +C Z +A X +A Y +A Z +A X +B X +B X +A Z +B X +A X +B X +B Y +B X +B X +C Z +A Y +A X +A Z +B Z +A X +A Z +A Z +A Y +B X +A Y +A X +A X +B X +A Z +B Z +A X +A Z +A Z +A Z +C Y +A X +B Z +B X +A Z +B X +A Z +A Y +A X +C Z +C X +A Y +A X +A Z +A X +A X +A Z +A Y +A Z +A Y +A X +C Y +B X +A Z +A X +A X +C Y +A X +A X +B Z +A Z +C Y +A X +A X +A X +B X +C Y +A X +A Y +B X +A X +A X +B Y +A Z +A X +A X +B X +A Z +A Y +C Y +C Z +C Y +A X +C Y +C Y +A X +A Y +C Y +B X +A X +B X +A X +A X +B X +A X +A Z +C Y +C Y +B X +A X +B X +C Z +C Y +B X +A X +A X +A Y +A X +A Y +A Z +B X +A Z +A Z +A X +A X +B X +C Y +B X +A Z +A X +A X +A X +B X +B Z +B X +B X +B X +A Z +A X +B Z +A X +B Z +A X +B Y +C Z +B Y +C Z +B Y +B X +A X +A X +C Y +B X +B X +A X +B Z +A Z +A Z +A X +A X +A X +B X +B X +B X +C Y +A X +B X +B X +B Z +B X +A Z +C Y +A X +C Z +A Z