From b45107a5617687bc437df3d667a09eaa1962429a Mon Sep 17 00:00:00 2001 From: Justintime50 <39606064+Justintime50@users.noreply.github.com> Date: Tue, 5 Dec 2023 12:26:08 -0700 Subject: [PATCH] feat: 2023 day 4 part 1 --- adventofcode/_2023/day4/challenge.py | 43 ++++++ adventofcode/_2023/day4/input.txt | 193 +++++++++++++++++++++++++++ adventofcode/_2023/day4/prompt.txt | 0 adventofcode/_2023/day4/sample.txt | 6 + test/unit/_2023/test_day4.py | 7 + 5 files changed, 249 insertions(+) create mode 100644 adventofcode/_2023/day4/challenge.py create mode 100644 adventofcode/_2023/day4/input.txt create mode 100644 adventofcode/_2023/day4/prompt.txt create mode 100644 adventofcode/_2023/day4/sample.txt create mode 100644 test/unit/_2023/test_day4.py diff --git a/adventofcode/_2023/day4/challenge.py b/adventofcode/_2023/day4/challenge.py new file mode 100644 index 0000000..9125e05 --- /dev/null +++ b/adventofcode/_2023/day4/challenge.py @@ -0,0 +1,43 @@ +from adventofcode.utils import open_input + + +def main(): + data = open_input('adventofcode/_2023/day4/input.txt') + answer_1 = get_answer(data) + # answer_2 = get_answer(data) + + print(answer_1) + # print(answer_2) + + return answer_1 + + +def get_answer(data): + """ + - you have a list of cards, one set is the winning numbers, one set is your numbers + - check if you have the winning numbers. You get a point for the first match, then doubled for every match + """ + answer = 0 + for index, line in enumerate(data): + sanatized_line = line.split(':')[1].split('|') + winnings = sanatized_line[0].split() + my_nums = sanatized_line[1].split() + + points = 0 + for num in my_nums: + if num in winnings: + points += 1 + + if points == 1: + answer += 1 + elif points >= 2: + temp = 1 + for i in range(points - 1): # -1 hack to account for the 1st iteration not being included here + temp = temp * 2 # Double the answer for x num of points + answer += temp + + return answer + + +if __name__ == '__main__': + main() diff --git a/adventofcode/_2023/day4/input.txt b/adventofcode/_2023/day4/input.txt new file mode 100644 index 0000000..b0ea22e --- /dev/null +++ b/adventofcode/_2023/day4/input.txt @@ -0,0 +1,193 @@ +Card 1: 4 16 87 61 11 37 43 25 49 17 | 54 36 14 55 83 58 43 15 87 17 97 11 62 75 37 4 49 80 42 61 20 79 25 24 16 +Card 2: 15 53 49 30 36 68 76 12 2 73 | 3 18 33 27 34 75 5 29 57 89 96 51 85 41 4 46 30 79 78 43 23 36 73 53 98 +Card 3: 47 63 83 92 61 40 42 46 48 45 | 48 43 8 49 77 80 56 50 7 31 13 70 74 37 92 1 20 25 76 90 81 9 52 24 16 +Card 4: 67 55 70 16 95 64 27 10 48 62 | 6 36 54 22 85 27 73 29 74 96 11 62 48 38 90 94 70 12 67 17 64 95 18 37 55 +Card 5: 27 94 48 79 51 46 63 69 50 84 | 15 53 62 45 21 66 84 51 29 40 25 43 27 88 79 63 3 54 48 23 90 69 94 74 36 +Card 6: 46 7 45 1 65 32 37 66 51 95 | 87 61 56 84 44 25 80 37 31 23 91 92 99 47 15 96 33 14 42 89 5 3 46 59 85 +Card 7: 4 1 78 46 99 72 3 79 43 54 | 22 20 16 46 27 93 81 99 56 59 10 35 91 2 77 87 19 92 54 28 17 90 4 38 79 +Card 8: 63 26 3 54 44 86 19 28 79 20 | 86 33 59 15 92 73 39 28 36 13 14 97 45 43 80 50 7 12 96 38 2 79 72 10 35 +Card 9: 11 96 56 3 25 87 9 20 19 67 | 84 25 9 83 67 13 95 45 72 87 58 14 43 5 52 49 93 19 42 48 18 59 3 66 20 +Card 10: 74 16 70 84 4 24 46 15 86 11 | 45 72 15 88 25 27 52 65 28 96 19 50 39 40 80 6 30 89 60 8 69 79 17 41 47 +Card 11: 45 38 25 87 9 41 3 35 64 77 | 15 46 14 73 7 81 61 19 51 98 70 18 9 65 57 36 37 49 34 47 89 84 16 27 53 +Card 12: 40 96 29 71 34 53 67 64 78 32 | 56 55 13 62 6 89 77 25 9 80 39 12 35 3 48 36 34 18 27 79 26 41 20 23 17 +Card 13: 93 5 47 17 31 80 10 99 91 4 | 59 13 55 19 99 90 39 12 82 87 5 57 84 8 3 36 11 58 35 25 95 14 16 6 30 +Card 14: 4 32 1 34 27 57 33 52 90 84 | 72 9 82 23 37 78 93 95 24 50 56 69 85 81 99 62 80 63 47 68 51 17 15 14 92 +Card 15: 96 89 22 38 81 6 12 44 70 30 | 64 13 60 59 47 37 43 1 21 18 66 15 98 73 49 69 33 93 68 31 36 3 51 77 28 +Card 16: 96 48 58 8 40 16 61 4 99 90 | 70 60 35 29 36 37 66 27 23 59 12 85 5 52 19 38 74 50 71 31 39 98 78 77 26 +Card 17: 26 68 8 27 54 67 33 70 43 36 | 94 79 34 54 68 44 40 27 12 6 84 62 29 53 38 33 61 71 97 45 65 42 4 30 55 +Card 18: 51 71 13 82 33 53 47 6 52 91 | 31 38 13 76 3 39 79 49 86 68 52 6 9 33 20 23 71 51 47 96 72 88 91 82 65 +Card 19: 30 40 87 47 80 51 67 56 36 91 | 3 97 96 47 64 50 16 51 25 52 94 36 81 78 83 40 84 54 55 15 91 2 74 37 80 +Card 20: 86 62 88 4 52 36 46 97 50 8 | 52 2 50 80 13 16 86 31 24 34 36 46 96 62 4 48 85 97 98 33 88 8 90 89 53 +Card 21: 5 51 41 45 92 12 30 53 55 46 | 5 31 88 83 97 16 41 23 32 56 63 34 73 50 51 91 40 43 14 79 58 86 30 20 45 +Card 22: 13 79 51 15 67 12 86 75 37 60 | 41 62 45 40 1 48 65 15 90 64 93 80 37 14 84 86 78 22 67 71 19 91 75 53 82 +Card 23: 83 38 65 66 61 68 73 45 94 37 | 61 68 80 46 58 63 57 9 29 76 7 14 43 72 88 40 92 31 48 87 21 77 20 70 19 +Card 24: 68 46 99 43 94 9 59 90 7 57 | 81 36 8 9 57 52 80 88 91 67 14 30 61 46 64 32 3 17 19 47 53 37 60 34 85 +Card 25: 33 62 17 70 92 78 82 65 71 29 | 32 86 68 45 40 8 6 48 90 55 81 87 70 62 99 52 2 1 15 44 18 4 47 92 66 +Card 26: 30 72 85 50 56 39 73 64 74 87 | 18 79 67 19 56 74 30 50 95 77 72 94 55 42 51 38 91 66 9 17 75 97 70 85 48 +Card 27: 62 44 63 58 23 75 35 2 39 98 | 71 41 79 82 51 55 38 66 91 24 3 85 16 87 17 8 22 28 19 48 11 84 90 63 65 +Card 28: 21 79 50 96 63 37 12 81 7 34 | 86 46 22 94 25 35 1 97 36 2 50 79 98 5 72 49 13 78 75 84 61 54 17 44 87 +Card 29: 42 33 88 19 31 10 7 40 54 75 | 82 41 93 27 37 80 6 36 76 3 24 67 16 50 98 66 35 34 49 15 1 57 25 59 92 +Card 30: 30 33 68 49 25 20 81 23 39 12 | 12 16 64 76 91 58 19 9 85 30 63 7 28 71 93 38 94 70 55 13 21 56 49 11 31 +Card 31: 8 71 47 52 54 84 69 12 32 31 | 97 70 29 77 95 7 51 57 4 17 34 83 79 20 80 6 75 85 26 87 84 74 92 58 76 +Card 32: 3 51 74 19 76 72 95 59 46 2 | 16 87 86 83 6 60 67 29 88 75 82 62 36 35 24 92 25 44 70 93 80 23 48 7 30 +Card 33: 70 73 24 26 89 13 95 76 69 31 | 55 68 7 15 16 66 78 54 80 41 6 25 23 42 20 81 19 65 39 82 56 97 2 59 48 +Card 34: 88 59 60 8 58 36 90 64 72 95 | 71 64 43 14 26 60 90 88 80 44 17 37 9 72 78 95 45 7 58 82 8 93 41 59 36 +Card 35: 72 14 1 41 13 91 42 43 34 54 | 80 73 57 41 38 46 85 56 49 5 28 22 18 2 3 74 58 37 61 26 16 11 70 88 48 +Card 36: 78 9 94 82 98 88 49 63 83 97 | 33 11 69 5 92 60 2 19 1 40 36 20 77 84 49 45 58 12 59 97 16 65 57 32 50 +Card 37: 63 59 64 90 75 24 91 25 1 72 | 19 80 3 74 55 52 73 67 30 90 75 54 60 91 31 9 79 86 20 24 95 23 63 82 1 +Card 38: 16 9 96 30 88 44 98 84 25 40 | 99 84 36 91 40 9 39 41 76 24 65 1 27 10 47 73 52 3 30 53 96 44 62 92 12 +Card 39: 91 51 71 58 67 29 45 8 94 39 | 44 71 69 22 58 95 8 83 52 23 82 93 39 7 45 2 78 53 75 24 91 10 68 66 67 +Card 40: 82 34 28 29 77 94 24 87 18 96 | 43 81 28 22 24 11 77 32 68 97 42 80 72 34 55 96 57 73 63 29 76 87 18 54 79 +Card 41: 44 55 42 71 36 54 61 15 45 60 | 45 12 33 42 94 28 97 71 80 83 47 52 57 34 13 86 60 54 43 22 15 8 82 61 55 +Card 42: 35 58 38 99 31 57 51 30 26 2 | 26 32 35 59 79 36 2 39 99 78 31 57 68 90 15 30 38 96 80 51 58 56 37 75 42 +Card 43: 77 10 9 64 44 90 81 98 21 59 | 13 97 80 15 81 65 50 88 23 71 46 77 90 74 87 14 76 98 16 59 72 22 40 11 58 +Card 44: 49 26 55 10 47 50 86 78 61 59 | 3 52 50 91 99 45 5 36 4 62 87 98 95 76 59 37 44 33 97 88 78 92 55 9 72 +Card 45: 83 29 80 15 1 49 48 88 20 85 | 67 28 18 81 33 43 86 97 58 12 48 65 3 88 98 73 13 26 29 38 32 47 31 52 23 +Card 46: 92 47 60 65 43 36 88 32 83 40 | 30 23 52 72 22 57 56 77 75 11 76 63 33 45 92 70 7 91 38 14 46 25 53 47 20 +Card 47: 4 34 2 20 13 60 83 22 32 29 | 53 22 74 55 44 24 7 1 3 18 9 35 23 75 79 39 49 42 29 65 83 32 33 15 60 +Card 48: 66 14 21 58 99 9 84 51 75 65 | 16 6 98 94 9 80 83 87 67 25 81 8 55 52 79 32 31 73 12 14 99 2 1 61 58 +Card 49: 77 15 4 39 53 69 50 67 12 88 | 80 86 39 59 88 91 40 8 6 28 71 32 52 53 78 67 68 55 18 48 36 2 10 15 46 +Card 50: 14 33 20 45 94 57 44 12 4 90 | 13 61 63 38 57 23 10 69 55 8 15 92 99 5 78 75 71 32 48 14 58 27 36 84 80 +Card 51: 86 37 44 80 7 64 84 83 35 45 | 57 36 92 97 40 70 39 42 95 54 91 41 84 24 83 98 94 49 45 74 68 31 11 61 47 +Card 52: 2 95 75 93 52 46 16 6 73 55 | 53 34 8 13 59 93 22 54 68 24 92 71 81 99 72 25 98 66 10 77 5 43 83 57 48 +Card 53: 60 77 43 57 11 65 27 58 42 14 | 31 20 34 28 15 99 95 10 68 72 54 83 40 59 49 71 37 47 78 63 53 62 81 76 89 +Card 54: 58 70 34 96 18 32 28 10 56 36 | 81 83 22 51 75 39 65 7 2 63 90 54 33 66 23 91 26 15 27 13 8 85 48 59 99 +Card 55: 32 57 4 1 99 46 20 31 39 83 | 33 39 99 93 4 34 7 1 28 21 2 73 84 27 86 63 46 57 20 66 83 31 12 72 32 +Card 56: 40 32 42 89 27 59 11 35 19 64 | 72 34 5 33 42 11 82 35 64 59 60 19 91 57 65 1 40 43 89 32 28 14 81 27 41 +Card 57: 72 82 17 11 97 99 78 4 76 32 | 50 22 14 91 70 56 2 11 28 6 96 77 49 99 20 97 68 71 52 30 78 89 65 44 7 +Card 58: 34 48 17 95 85 64 21 4 69 20 | 24 33 98 35 10 65 48 83 47 58 41 69 17 97 64 42 12 20 95 4 9 34 3 21 85 +Card 59: 77 23 73 74 65 5 21 46 25 7 | 89 12 70 17 73 65 41 37 5 78 62 60 15 3 72 94 14 77 38 69 83 98 24 43 56 +Card 60: 12 13 25 5 33 49 9 72 24 2 | 41 93 73 2 91 44 20 81 24 52 89 50 17 92 86 11 7 60 94 12 72 63 69 38 71 +Card 61: 19 91 49 95 9 34 79 69 44 53 | 5 37 78 67 29 21 40 15 52 42 54 4 99 80 9 36 22 35 32 68 19 14 23 92 95 +Card 62: 4 90 51 59 40 87 28 48 73 32 | 11 85 97 8 28 79 36 72 48 40 59 54 95 73 19 78 88 31 90 5 51 4 6 91 92 +Card 63: 9 71 2 3 83 4 89 24 36 58 | 6 44 77 50 89 97 9 72 37 66 78 58 57 24 27 61 63 36 14 76 99 3 25 65 12 +Card 64: 24 44 18 88 34 51 20 32 74 47 | 12 20 48 92 32 24 7 11 51 96 78 45 94 44 39 29 37 97 25 59 88 31 18 89 34 +Card 65: 15 94 2 23 67 77 64 63 25 27 | 82 26 73 49 74 86 32 37 5 38 97 81 19 67 7 45 70 44 22 36 6 15 27 72 75 +Card 66: 87 1 49 91 70 8 25 90 50 39 | 78 83 58 60 87 95 51 21 28 36 96 32 33 92 13 47 74 65 57 82 99 39 8 86 25 +Card 67: 17 4 29 90 38 28 63 31 20 14 | 47 76 39 40 68 95 41 78 6 23 50 2 30 17 58 90 35 32 85 93 31 20 59 34 52 +Card 68: 56 70 83 13 54 79 65 4 53 68 | 88 23 52 45 75 26 10 74 92 40 12 81 35 82 49 5 42 11 94 78 9 97 22 48 30 +Card 69: 1 5 41 3 42 91 16 71 67 95 | 39 52 33 77 89 29 2 99 62 51 79 50 15 63 66 88 8 68 18 14 25 21 75 70 32 +Card 70: 70 2 33 17 56 6 65 26 59 4 | 80 60 58 61 26 62 38 79 18 71 29 65 88 40 35 50 11 22 12 83 30 44 91 21 20 +Card 71: 13 9 44 91 25 28 87 46 5 29 | 76 37 86 55 3 99 98 48 88 97 89 36 83 64 56 8 22 45 43 94 60 47 78 27 95 +Card 72: 41 59 54 74 23 15 25 51 96 31 | 49 55 26 80 86 83 46 6 36 4 14 85 92 47 44 61 57 40 1 60 29 65 19 87 32 +Card 73: 45 76 75 41 20 38 5 79 26 58 | 7 86 27 55 25 41 78 33 59 97 43 70 66 64 44 60 74 88 29 77 76 15 62 21 30 +Card 74: 85 50 86 59 33 25 10 82 19 3 | 33 82 38 88 13 85 3 84 75 27 79 74 25 91 50 59 8 19 53 58 32 2 63 86 10 +Card 75: 45 41 31 38 25 77 64 33 37 70 | 38 19 40 31 53 25 30 8 33 91 6 70 42 28 54 88 77 80 69 72 37 49 41 39 45 +Card 76: 8 67 35 28 65 54 74 17 40 4 | 67 79 57 73 70 32 69 18 65 54 97 4 43 17 58 48 61 3 41 13 76 8 35 22 9 +Card 77: 69 54 59 52 95 91 6 89 85 16 | 13 93 66 84 18 91 15 78 64 3 6 89 4 16 94 23 85 69 33 59 87 54 52 24 98 +Card 78: 47 91 89 93 94 67 76 90 26 14 | 2 3 59 19 67 41 89 12 90 26 83 94 1 93 97 76 17 32 91 10 14 48 36 47 53 +Card 79: 23 92 5 91 59 75 65 84 22 57 | 16 95 71 86 75 9 10 87 81 28 20 11 43 13 19 2 63 84 5 85 61 33 23 73 99 +Card 80: 78 5 13 75 9 27 21 24 45 30 | 94 28 46 2 9 66 99 36 49 6 61 26 25 15 17 74 85 97 82 11 54 34 31 10 29 +Card 81: 89 33 76 53 28 58 9 75 15 92 | 20 10 40 68 16 84 15 22 9 75 69 42 34 80 92 58 45 30 67 28 52 27 71 65 33 +Card 82: 90 80 73 27 72 6 41 56 3 47 | 85 26 49 70 16 4 36 60 54 12 17 32 78 94 63 44 33 39 96 1 95 55 48 7 2 +Card 83: 34 29 8 1 64 95 10 44 66 46 | 94 3 58 22 26 47 29 11 97 65 1 12 64 61 66 8 16 9 99 95 24 19 91 43 52 +Card 84: 51 57 90 39 83 37 54 15 94 40 | 89 39 19 78 74 47 38 1 41 71 85 31 56 46 92 30 66 96 55 83 94 51 49 95 67 +Card 85: 81 68 7 66 4 5 34 74 45 87 | 5 55 87 90 42 16 45 23 86 60 69 65 72 54 14 7 17 21 8 25 56 79 32 10 44 +Card 86: 41 98 47 99 76 73 38 31 8 4 | 30 36 54 79 43 34 9 27 66 97 56 85 17 21 65 11 29 51 10 77 70 48 73 55 67 +Card 87: 93 11 14 33 29 89 48 13 76 60 | 37 68 19 15 12 22 53 48 16 85 26 45 95 51 89 73 25 9 8 52 70 31 84 54 65 +Card 88: 75 43 74 65 80 76 79 85 29 71 | 3 77 90 22 11 16 62 7 67 26 30 14 98 12 44 87 53 45 2 13 46 76 48 60 39 +Card 89: 66 21 28 73 67 61 92 76 26 35 | 9 57 60 10 91 31 19 8 47 36 6 87 50 17 59 15 33 37 22 74 51 81 85 68 34 +Card 90: 31 6 89 59 34 33 38 7 11 72 | 10 35 92 37 70 53 61 56 4 82 90 21 45 54 15 17 5 25 51 74 9 86 48 40 97 +Card 91: 86 51 95 84 93 32 54 20 59 92 | 87 55 74 2 33 22 14 19 77 51 12 39 43 71 47 59 38 1 92 93 20 95 16 32 36 +Card 92: 41 45 50 46 43 29 19 74 58 81 | 58 19 43 93 15 23 74 40 46 79 9 42 61 10 4 41 81 12 45 50 89 98 67 96 29 +Card 93: 65 60 55 39 2 76 91 71 9 96 | 54 67 26 42 90 68 40 25 88 97 51 15 41 1 83 64 20 56 53 44 16 8 63 6 17 +Card 94: 91 84 97 98 45 59 89 43 81 61 | 22 58 60 69 53 68 95 51 56 87 17 3 34 70 8 19 33 16 67 29 18 31 55 40 28 +Card 95: 82 45 14 97 52 48 65 96 17 93 | 64 52 92 8 17 82 27 45 83 93 9 49 74 84 91 20 13 48 96 97 56 24 14 77 57 +Card 96: 49 74 18 64 58 8 61 9 22 53 | 11 68 83 90 95 8 60 71 28 91 20 13 52 62 43 87 23 46 86 88 80 59 33 19 53 +Card 97: 78 22 21 96 8 84 29 51 99 53 | 89 94 18 58 21 52 92 38 35 41 5 34 7 36 77 68 20 49 80 55 87 17 8 15 86 +Card 98: 63 92 3 16 80 94 36 54 98 75 | 66 51 87 27 79 84 22 20 41 99 46 40 45 39 59 63 97 15 92 36 57 7 69 54 48 +Card 99: 30 95 26 13 66 67 20 52 6 19 | 66 8 92 3 88 78 37 27 39 12 28 82 30 20 52 94 26 67 2 93 91 61 48 40 11 +Card 100: 48 52 64 41 32 73 49 35 27 43 | 99 3 83 10 25 13 42 47 36 67 84 71 97 55 4 53 57 95 31 29 93 19 5 62 50 +Card 101: 21 35 7 98 38 72 23 87 68 2 | 19 65 60 13 2 35 72 82 74 68 86 39 27 1 93 10 66 46 88 21 84 16 25 14 48 +Card 102: 14 65 49 53 15 30 74 18 24 60 | 66 73 99 20 88 13 65 18 46 71 64 4 27 92 86 84 72 94 79 67 75 43 52 1 90 +Card 103: 6 5 73 80 99 12 9 59 13 89 | 56 33 74 27 1 35 78 80 66 43 81 70 51 34 39 23 62 19 65 13 71 38 37 72 12 +Card 104: 65 33 18 59 73 41 63 82 75 56 | 62 92 33 14 34 23 28 86 94 63 21 96 74 99 85 30 16 66 22 43 25 93 79 44 32 +Card 105: 63 43 48 30 8 82 19 54 26 4 | 56 6 46 68 51 25 13 28 17 88 49 31 77 75 61 3 87 72 89 43 90 32 7 52 57 +Card 106: 47 19 75 22 94 77 8 38 96 21 | 41 35 27 58 32 29 1 39 11 76 91 92 57 52 46 97 83 53 45 20 72 95 74 56 48 +Card 107: 30 73 2 37 19 56 65 47 90 72 | 40 39 27 75 3 23 82 30 17 84 57 62 53 97 12 22 36 99 98 15 46 55 52 25 78 +Card 108: 28 10 38 12 59 81 76 61 1 15 | 38 14 1 93 81 98 44 87 50 5 90 28 40 76 6 41 34 21 32 19 66 49 46 15 12 +Card 109: 20 60 64 19 96 99 92 97 56 50 | 47 56 44 83 91 78 7 79 58 69 22 4 5 13 88 43 23 98 59 65 85 54 61 31 68 +Card 110: 48 5 91 83 38 22 37 46 12 29 | 85 88 37 98 47 48 26 29 83 72 28 5 11 90 45 12 22 38 33 46 97 21 89 82 91 +Card 111: 32 18 26 70 63 28 15 59 51 21 | 70 89 40 77 31 30 24 12 63 16 97 43 66 87 44 5 96 65 34 72 11 83 59 39 15 +Card 112: 23 96 39 2 63 28 57 13 45 83 | 99 82 66 18 28 46 96 70 68 15 39 20 88 21 56 23 2 17 72 44 6 57 30 83 63 +Card 113: 7 12 18 90 25 4 13 19 10 47 | 47 32 25 62 21 7 24 54 3 86 4 15 10 90 29 13 67 18 89 83 12 19 84 33 96 +Card 114: 3 79 92 67 56 89 69 51 88 65 | 48 35 99 69 81 18 59 5 12 50 52 63 68 88 7 25 33 51 23 3 89 94 44 49 82 +Card 115: 8 47 42 94 93 89 63 12 45 25 | 13 47 92 74 94 8 25 30 53 12 29 54 28 60 11 48 20 49 91 36 69 17 44 57 23 +Card 116: 91 24 4 78 51 46 36 54 33 9 | 91 57 6 53 13 9 60 3 51 24 2 72 40 46 29 4 39 77 33 78 36 44 70 68 54 +Card 117: 56 17 24 77 22 39 75 99 61 84 | 61 56 98 78 99 17 63 93 7 35 77 23 67 39 76 60 15 20 5 22 24 70 6 36 75 +Card 118: 29 65 49 43 98 94 14 16 95 54 | 29 12 98 17 23 15 3 69 81 34 16 27 91 1 26 2 6 82 7 32 11 72 25 58 9 +Card 119: 88 15 5 72 98 69 48 42 71 94 | 24 22 47 46 73 3 40 16 51 74 18 6 72 82 41 85 52 86 4 62 58 71 30 80 67 +Card 120: 80 5 74 70 13 51 2 83 90 69 | 4 62 47 51 66 74 88 49 98 76 83 80 94 75 28 5 14 99 31 2 40 6 70 81 11 +Card 121: 45 32 99 18 69 28 68 16 30 88 | 28 33 37 46 11 40 86 94 22 44 48 60 23 8 25 78 54 18 67 1 61 87 42 21 63 +Card 122: 32 42 18 48 4 97 8 13 41 14 | 54 35 71 90 75 31 8 27 95 61 56 43 7 5 46 51 70 74 79 3 59 93 66 57 63 +Card 123: 67 87 25 96 5 53 65 33 7 93 | 24 27 90 62 19 20 15 65 43 14 78 28 91 54 57 80 84 79 76 42 47 60 25 34 86 +Card 124: 65 40 9 7 77 17 91 23 93 37 | 24 29 77 56 18 88 7 86 87 8 35 31 23 58 32 51 38 66 19 12 25 13 53 85 96 +Card 125: 1 42 28 43 32 85 98 21 55 91 | 93 41 80 26 98 22 46 74 16 79 51 18 11 29 15 72 94 83 27 39 2 75 60 10 97 +Card 126: 80 84 95 87 74 30 48 19 33 34 | 67 21 38 63 61 69 78 28 31 17 66 60 64 86 96 77 32 10 20 26 76 18 35 97 73 +Card 127: 71 5 14 49 18 92 33 82 66 48 | 65 98 25 96 17 94 45 7 43 62 60 50 27 58 16 22 24 95 47 76 51 97 84 46 69 +Card 128: 87 46 34 65 24 8 25 58 53 17 | 53 35 79 93 46 33 5 75 89 10 16 55 43 52 63 61 92 57 91 13 44 68 12 1 31 +Card 129: 89 51 40 43 63 19 44 15 90 83 | 73 31 89 12 44 15 9 79 83 41 43 92 90 46 51 87 63 19 3 78 40 65 58 36 10 +Card 130: 23 93 46 97 56 2 84 27 90 81 | 80 7 87 82 27 73 21 69 39 84 41 74 90 31 2 56 83 15 57 79 72 94 60 78 48 +Card 131: 97 72 71 26 99 87 33 15 80 42 | 55 83 73 69 42 99 56 59 12 11 8 29 95 74 47 21 41 75 7 27 52 26 98 30 97 +Card 132: 42 62 27 46 10 4 25 49 71 68 | 10 49 66 47 44 68 14 42 37 60 36 48 23 20 25 51 62 4 13 21 27 70 18 86 71 +Card 133: 60 92 64 94 88 8 13 29 3 73 | 51 73 72 63 81 21 90 91 64 46 53 70 60 7 39 50 41 75 36 55 29 9 65 67 78 +Card 134: 58 60 72 44 62 38 12 27 69 90 | 66 82 29 95 37 54 98 31 74 2 99 35 13 11 83 1 63 14 93 21 81 39 47 77 4 +Card 135: 85 74 56 48 25 73 14 20 86 16 | 73 63 35 28 50 7 66 39 3 1 91 98 69 68 56 33 93 9 86 52 15 54 71 53 44 +Card 136: 72 27 4 80 71 7 15 64 13 41 | 16 52 6 95 83 5 88 21 97 99 90 87 20 43 51 10 33 3 91 26 32 69 39 22 40 +Card 137: 12 53 99 38 89 1 80 18 67 90 | 92 96 95 84 36 93 73 79 31 40 44 21 53 83 59 87 13 57 50 98 33 77 22 41 34 +Card 138: 29 51 61 45 18 77 65 34 56 35 | 93 73 57 76 27 87 20 61 50 71 22 54 19 82 26 13 8 97 29 12 36 42 56 47 18 +Card 139: 9 86 94 52 84 53 65 87 92 73 | 62 89 19 92 43 44 51 42 65 20 24 26 22 2 76 67 95 6 97 87 74 72 75 27 23 +Card 140: 84 93 8 15 50 67 90 66 89 59 | 79 50 10 30 31 35 5 97 77 34 37 67 47 83 27 55 62 40 6 24 57 54 53 71 7 +Card 141: 91 20 24 58 99 61 53 81 18 30 | 59 40 14 97 60 31 72 9 25 95 12 37 75 88 92 73 16 41 67 98 51 32 23 66 96 +Card 142: 34 10 96 5 31 35 51 50 6 42 | 49 60 77 83 47 39 23 81 79 7 99 13 82 59 24 98 35 57 72 69 86 76 18 55 61 +Card 143: 78 41 71 76 61 47 1 55 75 99 | 80 44 11 31 50 28 62 12 45 40 70 27 9 4 86 15 56 91 79 85 25 67 63 64 88 +Card 144: 8 60 75 55 87 31 66 86 97 61 | 97 35 30 84 53 8 44 22 86 85 61 46 87 10 37 55 34 27 25 31 20 70 50 11 66 +Card 145: 82 53 79 77 33 30 72 17 97 81 | 53 11 29 30 81 35 97 77 72 25 46 89 82 79 73 61 45 17 33 41 23 98 76 69 87 +Card 146: 28 9 7 73 46 10 79 78 92 72 | 94 86 72 67 13 91 57 12 30 60 85 59 34 35 62 76 43 2 93 46 96 41 84 51 90 +Card 147: 32 43 57 10 92 4 97 78 15 81 | 92 96 13 57 15 58 52 89 10 35 47 31 81 4 32 39 70 55 5 97 68 78 2 83 43 +Card 148: 12 25 92 23 7 26 39 53 1 31 | 83 23 98 42 53 92 45 25 26 63 7 40 12 47 55 64 66 14 60 75 13 34 85 21 15 +Card 149: 99 65 4 47 72 98 43 84 60 41 | 36 58 1 52 65 79 90 71 43 49 6 5 99 28 16 50 18 93 42 56 86 23 59 92 14 +Card 150: 63 66 75 98 88 74 73 90 44 78 | 49 77 33 69 7 65 32 9 93 66 42 73 50 11 92 68 64 88 31 34 74 20 19 8 13 +Card 151: 32 5 78 85 56 90 29 66 50 68 | 46 90 89 5 14 75 13 66 1 29 32 35 68 47 22 42 78 23 63 44 50 73 83 56 85 +Card 152: 73 75 40 67 61 86 93 71 20 15 | 4 9 13 30 14 75 68 76 79 24 34 32 98 93 23 50 20 36 33 72 88 82 89 51 31 +Card 153: 45 64 17 72 24 34 87 40 31 84 | 50 83 19 81 64 54 45 17 35 41 2 79 76 24 30 92 65 20 43 38 75 84 29 40 53 +Card 154: 42 68 35 21 46 87 71 52 65 74 | 33 22 74 87 96 65 46 94 42 35 6 80 53 71 7 85 90 27 49 52 47 41 16 58 98 +Card 155: 65 80 15 4 31 74 60 71 38 97 | 45 22 43 66 15 99 17 26 49 65 93 48 74 4 57 38 91 71 39 37 11 31 80 67 68 +Card 156: 60 44 95 98 59 42 56 20 1 50 | 57 88 20 56 26 84 42 95 98 44 50 35 59 30 41 34 14 10 54 92 6 48 1 63 60 +Card 157: 86 26 6 43 83 10 63 79 23 80 | 71 10 25 30 49 73 93 29 55 13 61 34 37 20 48 3 95 96 28 82 5 12 18 62 38 +Card 158: 25 90 71 67 30 62 3 44 70 64 | 26 18 25 5 90 22 36 71 64 21 79 1 82 93 14 67 19 45 80 44 40 63 20 87 91 +Card 159: 52 17 61 50 12 31 10 96 6 82 | 47 50 31 2 53 85 43 80 10 30 13 56 67 19 12 6 7 96 86 61 16 94 52 66 49 +Card 160: 40 29 83 42 41 87 26 15 39 31 | 28 42 95 96 87 78 40 48 26 41 85 84 89 83 82 27 98 68 73 53 24 4 29 32 58 +Card 161: 22 17 1 83 37 87 41 64 90 70 | 40 6 91 68 22 1 52 94 84 5 72 21 3 37 80 17 51 24 50 9 61 79 99 95 35 +Card 162: 77 35 2 19 78 14 3 94 56 39 | 44 66 3 25 58 55 24 38 16 54 89 1 60 43 72 68 79 22 65 69 86 21 76 18 91 +Card 163: 89 21 76 57 18 31 82 42 83 36 | 16 64 59 84 29 18 48 99 5 2 97 50 73 42 46 30 92 57 9 87 10 89 65 27 83 +Card 164: 63 66 76 23 39 3 83 50 74 47 | 15 75 36 6 55 85 90 10 84 14 7 57 35 95 40 49 31 42 70 65 1 72 62 92 25 +Card 165: 3 87 50 13 90 51 68 34 73 99 | 35 6 24 4 27 57 39 31 88 56 95 14 85 36 15 5 59 86 66 11 76 29 19 30 38 +Card 166: 38 40 32 54 73 11 63 3 47 98 | 82 1 72 93 17 25 69 85 57 75 27 89 22 88 61 78 59 3 95 71 70 28 53 41 35 +Card 167: 65 76 70 32 57 71 66 53 8 16 | 31 2 56 82 21 69 59 94 36 44 93 51 15 91 48 99 1 55 68 14 19 7 27 5 85 +Card 168: 58 95 66 45 85 56 8 97 82 50 | 53 49 46 88 59 78 90 96 2 76 43 83 1 17 21 19 41 91 32 51 27 89 65 34 7 +Card 169: 56 19 4 48 97 63 2 88 98 66 | 71 19 39 34 2 48 35 88 8 4 63 97 65 28 12 92 37 55 83 66 56 59 3 72 7 +Card 170: 24 94 50 99 33 97 75 86 35 65 | 79 13 50 15 97 99 33 8 35 6 76 17 38 21 73 86 75 24 30 10 69 65 11 90 94 +Card 171: 32 49 8 61 74 78 30 72 54 2 | 86 25 72 47 59 29 44 35 82 61 77 5 42 43 15 53 33 57 27 83 71 30 63 56 37 +Card 172: 71 41 56 85 78 2 61 72 32 20 | 58 8 56 15 34 82 25 54 48 41 10 6 27 2 72 30 52 9 14 40 68 5 78 62 19 +Card 173: 51 21 69 26 46 44 94 16 72 2 | 58 74 89 26 31 21 62 36 79 83 2 28 87 51 72 10 73 12 7 37 4 69 8 29 44 +Card 174: 72 51 17 66 87 44 86 95 34 75 | 86 51 76 44 82 23 56 26 18 54 22 28 61 38 27 66 75 42 96 41 13 34 33 95 43 +Card 175: 98 99 68 95 29 23 22 28 3 10 | 19 99 22 50 48 82 95 39 86 40 69 28 41 29 24 36 46 78 85 54 60 32 96 61 37 +Card 176: 16 84 47 66 30 85 37 89 25 53 | 39 57 94 95 78 81 5 85 34 56 26 98 73 80 96 15 86 54 20 59 9 33 8 87 29 +Card 177: 62 5 80 3 9 97 32 81 17 23 | 3 97 38 5 23 42 48 60 9 57 50 92 84 75 32 62 7 8 81 80 49 78 52 64 17 +Card 178: 89 60 24 84 47 34 32 31 9 98 | 89 22 85 24 78 40 86 34 29 79 46 83 32 1 77 68 93 31 12 60 98 7 5 65 2 +Card 179: 87 70 18 66 65 37 84 95 4 21 | 36 39 57 21 54 17 96 95 72 53 16 45 73 81 38 70 6 18 87 9 8 59 12 7 41 +Card 180: 96 21 90 20 72 75 47 83 59 42 | 9 52 61 97 51 80 65 28 23 18 84 6 99 15 53 92 45 3 58 91 81 73 32 17 16 +Card 181: 69 49 79 61 19 76 34 54 30 52 | 59 70 37 41 67 21 84 50 89 20 17 9 74 72 7 45 11 92 47 42 32 73 10 82 76 +Card 182: 80 88 66 69 51 8 65 28 92 18 | 18 91 16 94 92 21 38 10 88 95 86 22 32 80 12 93 71 28 37 40 67 1 39 60 19 +Card 183: 3 83 17 55 42 4 99 52 8 28 | 37 19 68 46 63 14 71 34 6 20 62 65 67 66 77 29 80 74 39 7 75 56 82 4 94 +Card 184: 72 20 13 43 1 6 70 15 86 16 | 6 34 50 73 43 28 99 64 24 59 15 37 29 81 69 9 13 1 16 71 20 32 83 67 10 +Card 185: 70 15 2 44 20 32 99 71 97 84 | 84 82 66 15 97 21 34 90 71 35 96 31 10 58 20 40 19 16 13 48 44 55 88 32 99 +Card 186: 57 49 47 23 51 73 24 13 99 97 | 83 79 62 57 91 78 54 90 17 26 42 87 3 56 51 13 23 27 85 58 73 72 99 61 9 +Card 187: 98 37 70 99 40 51 26 24 9 38 | 92 83 10 87 77 57 89 37 27 12 6 13 95 14 82 1 43 81 29 21 74 28 51 30 98 +Card 188: 95 92 24 42 63 84 14 49 32 12 | 56 5 32 34 68 43 70 58 83 62 31 40 42 72 49 86 19 65 77 64 53 84 51 36 14 +Card 189: 6 73 64 8 38 87 46 22 49 90 | 8 17 62 47 59 24 9 95 46 81 41 35 40 72 73 18 39 78 28 98 3 88 4 66 86 +Card 190: 26 75 89 96 83 78 16 3 45 97 | 32 73 53 21 65 25 17 58 51 49 84 24 96 40 35 20 7 77 64 97 67 99 61 52 46 +Card 191: 15 47 16 32 63 94 33 85 74 26 | 14 43 66 6 92 7 10 22 88 1 29 91 64 84 83 48 42 54 60 35 96 82 49 9 90 +Card 192: 29 68 86 19 93 50 55 5 12 41 | 83 36 30 69 40 16 38 54 99 61 21 79 81 41 65 3 26 27 31 35 39 8 25 49 70 +Card 193: 53 40 5 39 13 12 27 57 68 45 | 67 10 87 64 22 6 77 17 20 24 78 52 19 18 99 88 66 31 65 47 11 61 90 9 92 diff --git a/adventofcode/_2023/day4/prompt.txt b/adventofcode/_2023/day4/prompt.txt new file mode 100644 index 0000000..e69de29 diff --git a/adventofcode/_2023/day4/sample.txt b/adventofcode/_2023/day4/sample.txt new file mode 100644 index 0000000..9bdb874 --- /dev/null +++ b/adventofcode/_2023/day4/sample.txt @@ -0,0 +1,6 @@ +Card 1: 41 48 83 86 17 | 83 86 6 31 17 9 48 53 +Card 2: 13 32 20 16 61 | 61 30 68 82 17 32 24 19 +Card 3: 1 21 53 59 44 | 69 82 63 72 16 21 14 1 +Card 4: 41 92 73 84 69 | 59 84 76 51 58 5 54 83 +Card 5: 87 83 26 28 32 | 88 30 70 12 93 22 82 36 +Card 6: 31 18 13 56 72 | 74 77 10 23 35 67 36 11 diff --git a/test/unit/_2023/test_day4.py b/test/unit/_2023/test_day4.py new file mode 100644 index 0000000..6d29d98 --- /dev/null +++ b/test/unit/_2023/test_day4.py @@ -0,0 +1,7 @@ +from adventofcode._2023.day4.challenge import main + + +def test_input(): + answer1 = main() + + assert answer1 == 15268