-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
2 changed files
with
137 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
/// # Final challenge | ||
/// | ||
/// Complete the `challenge` function that takes a raw data file with the orders of a day separated | ||
/// by a semicolon. Each day is a new line with the following format: | ||
/// ``` | ||
/// Orders day 1: 3 apples, 2 bananas; 5 bananas, 2 apples, 12 pears; 1 apples, 1 pears | ||
/// ``` | ||
/// Our store only sells `apples`, `bananas`, and `pears`, but there is a limited supply of each fruit, | ||
/// there are 30 apples, 35 bananas, and 40 pears every day to be sold. | ||
/// | ||
/// The function should return a tuple with: | ||
/// - The first entry the sum of the day numbers we ran out stock of any of the fruits. | ||
/// - The second entry can be calculated with: | ||
/// - Find highest quantity per product per day. | ||
/// - Multiply these highest quantities to get a single total per day. | ||
/// - Sum all days to get the final answer. | ||
fn challenge(data: &str) -> (i32, i32) { | ||
(0, 0) | ||
} | ||
|
||
fn main() { | ||
let data = include_str!("../data/challenge_data.txt"); | ||
challenge(data); | ||
} | ||
|
||
#[cfg(test)] | ||
mod tests { | ||
use super::*; | ||
|
||
#[test] | ||
fn test_challenge() { | ||
assert_eq!( | ||
challenge(include_str!("../data/challenge_data.txt")), | ||
(3536, 114752) | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
Orders day 1: 3 apples, 5 pears, 11 bananas; 5 apples, 16 pears, 1 bananas; 12 apples, 20 pears, 10 bananas | ||
Orders day 2: 7 apples, 14 pears, 8 bananas; 4 apples, 1 pears, 1 bananas; 10 apples, 7 pears, 4 bananas | ||
Orders day 3: 15 apples, 9 pears, 10 bananas; 9 apples, 8 pears, 7 bananas; 13 apples, 3 pears, 9 bananas | ||
Orders day 4: 17 pears; 17 apples, 17 pears, 1 bananas; 10 pears, 1 bananas; 14 apples, 1 pears, 1 bananas; 8 pears, 2 bananas | ||
Orders day 5: 14 apples, 6 pears, 6 bananas; 10 apples, 9 pears, 14 bananas; 19 apples, 4 pears, 1 bananas; 1 apples, 4 pears, 5 bananas; 9 apples, 9 pears, 14 bananas; 10 apples, 5 pears, 21 bananas | ||
Orders day 6: 6 apples, 1 pears, 11 bananas; 12 apples, 18 bananas; 1 apples, 1 pears, 15 bananas | ||
Orders day 7: 7 apples, 11 pears, 7 bananas; 4 apples, 18 pears, 14 bananas; 6 apples, 2 pears, 19 bananas; 6 apples, 8 pears, 10 bananas | ||
Orders day 8: 6 apples, 1 pears, 6 bananas; 15 apples, 1 pears, 1 bananas; 5 apples, 5 pears, 1 bananas; 6 apples, 1 pears, 7 bananas; 1 apples, 4 pears | ||
Orders day 9: 2 apples, 6 pears; 7 apples, 8 pears; 9 apples, 1 pears, 1 bananas; 1 bananas; 6 apples, 17 pears, 1 bananas; 4 apples, 14 pears, 1 bananas | ||
Orders day 10: 1 apples, 4 pears, 14 bananas; 11 apples, 19 pears; 1 pears, 19 bananas; 6 apples, 17 pears, 8 bananas | ||
Orders day 11: 5 apples, 2 pears, 2 bananas; 10 apples, 1 pears, 5 bananas; 4 apples, 4 pears, 1 bananas | ||
Orders day 12: 11 apples, 3 pears, 8 bananas; 3 apples, 5 pears, 8 bananas; 3 apples, 3 pears; 5 apples, 3 pears, 6 bananas | ||
Orders day 13: 1 apples, 1 pears; 2 apples, 2 pears, 10 bananas; 1 apples, 5 pears, 4 bananas; 4 apples, 2 pears, 15 bananas; 1 apples, 1 pears, 12 bananas; 1 apples, 13 bananas | ||
Orders day 14: 10 apples, 1 pears, 9 bananas; 14 apples, 7 pears, 12 bananas; 9 apples, 5 bananas; 8 apples, 7 pears, 14 bananas | ||
Orders day 15: 1 pears, 4 bananas; 9 apples, 7 pears, 18 bananas; 4 apples, 13 bananas | ||
Orders day 16: 6 apples, 15 pears, 5 bananas; 4 apples, 10 pears, 5 bananas; 4 apples, 10 pears, 1 bananas; 13 apples, 5 pears, 6 bananas; 3 apples, 1 pears, 3 bananas | ||
Orders day 17: 10 apples, 7 pears, 10 bananas; 5 apples, 12 pears, 3 bananas; 15 apples, 4 pears, 7 bananas; 4 apples, 18 pears, 8 bananas; 8 apples, 18 pears, 3 bananas | ||
Orders day 18: 6 apples, 13 pears, 1 bananas; 2 apples, 7 pears, 5 bananas; 12 pears | ||
Orders day 19: 6 apples, 1 pears; 4 pears, 2 bananas; 8 apples, 7 pears, 1 bananas; 14 pears, 5 bananas; 5 apples, 11 pears; 3 apples, 11 pears, 1 bananas | ||
Orders day 20: 2 apples, 5 pears, 9 bananas; 7 apples, 2 pears, 6 bananas; 9 apples; 16 apples, 1 pears, 6 bananas; 3 apples, 5 pears, 1 bananas; 9 apples, 8 pears | ||
Orders day 21: 3 apples, 1 pears; 6 pears, 4 bananas; 1 apples, 9 pears, 6 bananas | ||
Orders day 22: 13 apples, 9 pears, 11 bananas; 2 apples, 8 pears, 13 bananas; 5 apples, 2 bananas | ||
Orders day 23: 4 apples, 6 pears, 17 bananas; 6 apples, 20 pears, 13 bananas; 1 apples, 13 pears | ||
Orders day 24: 4 apples, 4 pears, 2 bananas; 11 apples, 3 pears, 8 bananas; 7 apples, 8 bananas; 6 apples, 3 pears, 5 bananas; 1 apples, 4 pears, 7 bananas; 11 apples, 6 bananas | ||
Orders day 25: 1 apples, 9 pears; 4 apples, 5 pears, 8 bananas; 12 pears; 5 apples, 8 pears, 2 bananas; 1 apples, 15 pears, 11 bananas; 5 apples, 3 pears, 10 bananas | ||
Orders day 26: 6 apples, 12 pears, 4 bananas; 3 apples, 5 pears, 8 bananas; 1 pears, 4 bananas; 4 apples, 6 pears; 1 apples, 7 pears, 3 bananas | ||
Orders day 27: 13 apples, 18 pears, 5 bananas; 16 apples, 2 pears, 11 bananas; 13 apples, 1 pears, 11 bananas; 4 pears, 3 bananas; 13 apples, 8 pears, 10 bananas; 1 apples, 2 pears, 5 bananas | ||
Orders day 28: 15 apples, 4 pears; 7 apples, 1 pears, 1 bananas; 8 apples; 22 apples, 1 pears | ||
Orders day 29: 10 pears, 1 bananas; 10 apples, 20 pears, 3 bananas; 2 apples, 20 pears, 13 bananas; 1 apples, 13 pears, 17 bananas; 7 apples, 11 pears, 8 bananas | ||
Orders day 30: 1 apples, 8 pears, 13 bananas; 3 apples, 1 pears, 12 bananas; 4 apples, 1 pears, 11 bananas; 10 apples, 7 pears, 12 bananas; 6 apples, 7 pears, 7 bananas | ||
Orders day 31: 1 apples, 6 pears, 9 bananas; 1 apples, 5 bananas; 8 pears, 16 bananas | ||
Orders day 32: 8 apples, 3 pears, 1 bananas; 10 apples, 7 pears, 6 bananas; 12 apples, 3 pears, 7 bananas; 1 apples, 14 pears, 9 bananas; 10 apples, 8 pears, 3 bananas | ||
Orders day 33: 9 apples, 1 pears, 2 bananas; 5 apples, 11 pears, 1 bananas; 1 apples, 11 pears | ||
Orders day 34: 4 apples, 1 pears, 5 bananas; 7 apples, 2 pears, 1 bananas; 7 apples, 6 pears; 4 apples, 11 pears, 6 bananas; 5 apples, 1 pears, 5 bananas; 10 apples, 11 pears, 8 bananas | ||
Orders day 35: 6 apples, 3 pears; 13 apples, 3 pears, 4 bananas; 5 pears, 4 bananas; 7 apples, 1 bananas; 7 apples, 5 bananas | ||
Orders day 36: 9 apples, 11 bananas; 3 apples, 12 pears, 5 bananas; 1 apples, 5 pears, 11 bananas; 8 apples, 3 pears, 6 bananas; 3 pears, 9 bananas | ||
Orders day 37: 13 apples, 7 pears, 1 bananas; 14 apples, 5 pears, 12 bananas; 5 apples, 9 bananas; 8 apples, 2 pears, 5 bananas; 12 apples, 8 pears, 1 bananas; 7 apples, 1 pears, 9 bananas | ||
Orders day 38: 13 apples, 15 pears, 11 bananas; 13 apples, 8 pears, 5 bananas; 13 apples, 18 pears, 13 bananas | ||
Orders day 39: 4 apples, 3 pears, 7 bananas; 1 apples, 4 pears, 5 bananas; 7 pears, 14 bananas | ||
Orders day 40: 3 apples, 8 pears, 1 bananas; 1 apples, 7 pears, 6 bananas; 17 apples, 4 pears, 17 bananas; 1 apples, 5 pears, 11 bananas | ||
Orders day 41: 1 apples, 4 pears, 9 bananas; 1 apples, 5 pears, 17 bananas; 1 pears, 15 bananas; 6 pears, 12 bananas | ||
Orders day 42: 4 apples, 5 pears, 1 bananas; 4 pears, 2 bananas; 2 apples; 5 apples, 5 pears; 2 apples, 1 bananas; 2 apples, 5 bananas | ||
Orders day 43: 3 apples, 2 pears, 5 bananas; 6 apples, 4 pears, 1 bananas; 6 apples, 8 pears, 4 bananas; 1 apples, 4 pears | ||
Orders day 44: 13 apples, 10 bananas; 10 apples; 9 apples, 1 pears, 9 bananas | ||
Orders day 45: 17 apples, 9 pears, 15 bananas; 8 apples, 9 pears; 16 apples, 5 pears, 9 bananas; 1 apples, 8 pears, 9 bananas | ||
Orders day 46: 10 apples, 1 pears; 5 apples, 5 pears, 11 bananas; 7 apples, 1 pears, 10 bananas | ||
Orders day 47: 5 apples, 3 bananas; 1 apples, 2 pears, 6 bananas; 1 apples, 9 bananas; 3 apples, 3 bananas; 1 apples, 5 bananas | ||
Orders day 48: 13 apples, 2 pears, 5 bananas; 4 apples, 7 pears; 2 apples, 6 pears, 5 bananas; 13 apples, 2 pears, 7 bananas; 3 pears, 10 bananas; 4 apples, 1 bananas | ||
Orders day 49: 4 apples, 2 pears, 1 bananas; 6 apples, 16 pears, 1 bananas; 10 pears, 3 bananas; 9 apples, 6 pears | ||
Orders day 50: 12 apples, 7 bananas; 12 apples, 5 pears, 10 bananas; 12 apples, 5 bananas | ||
Orders day 51: 4 apples, 1 pears, 13 bananas; 7 apples, 1 pears, 13 bananas; 7 apples, 1 pears, 11 bananas; 6 apples, 1 pears, 7 bananas | ||
Orders day 52: 12 apples, 6 pears, 7 bananas; 3 apples, 7 pears, 4 bananas; 8 apples, 5 pears, 3 bananas; 11 apples, 4 pears, 4 bananas; 3 apples, 5 pears, 8 bananas; 1 apples | ||
Orders day 53: 10 apples, 7 pears, 2 bananas; 10 apples, 3 pears; 7 apples, 2 pears, 5 bananas; 4 bananas | ||
Orders day 54: 5 apples, 7 pears, 8 bananas; 2 apples, 9 pears, 6 bananas; 8 apples, 10 pears, 6 bananas; 8 apples, 5 pears | ||
Orders day 55: 1 bananas; 4 apples, 1 pears, 4 bananas; 4 apples, 5 pears, 7 bananas; 5 apples, 2 pears, 8 bananas; 1 apples, 5 pears, 3 bananas | ||
Orders day 56: 5 apples, 7 pears, 1 bananas; 5 apples, 7 pears, 2 bananas; 12 apples, 13 pears, 3 bananas; 8 apples, 9 pears | ||
Orders day 57: 13 pears, 1 bananas; 8 apples, 2 pears; 1 pears, 4 bananas; 8 pears, 1 bananas; 5 apples, 7 pears, 3 bananas; 9 apples, 11 pears, 6 bananas | ||
Orders day 58: 6 apples, 4 pears, 16 bananas; 19 apples, 16 pears, 7 bananas; 10 apples, 17 pears, 4 bananas; 13 apples, 16 pears, 14 bananas; 3 apples, 16 pears, 10 bananas; 8 apples, 3 pears, 5 bananas | ||
Orders day 59: 13 apples, 8 pears, 23 bananas; 1 apples, 8 pears, 17 bananas; 5 apples, 3 pears, 10 bananas; 4 apples, 13 pears, 6 bananas; 9 apples, 9 pears, 18 bananas | ||
Orders day 60: 10 pears, 7 bananas; 4 apples, 12 pears; 14 pears, 4 bananas | ||
Orders day 61: 10 apples, 2 pears, 1 bananas; 5 apples, 11 pears, 13 bananas; 16 apples, 12 pears, 6 bananas; 9 apples, 1 pears, 1 bananas | ||
Orders day 62: 15 apples, 4 pears, 2 bananas; 4 pears, 1 bananas; 11 apples, 10 pears, 5 bananas; 5 apples, 8 pears; 12 apples, 9 pears; 8 apples, 10 pears | ||
Orders day 63: 7 apples, 1 bananas; 3 apples, 8 bananas; 9 apples, 12 bananas; 4 apples, 11 bananas; 8 apples, 1 pears, 14 bananas; 11 apples, 1 pears, 8 bananas | ||
Orders day 64: 11 apples, 4 pears, 5 bananas; 12 apples, 11 pears, 5 bananas; 14 apples, 2 pears, 7 bananas; 8 apples, 5 pears, 3 bananas | ||
Orders day 65: 11 apples, 8 pears; 1 apples, 5 pears, 8 bananas; 12 apples, 10 pears, 1 bananas; 9 apples, 12 pears, 11 bananas; 8 apples, 4 pears, 9 bananas; 8 apples, 5 pears, 1 bananas | ||
Orders day 66: 10 apples, 8 pears, 5 bananas; 5 apples, 4 pears, 2 bananas; 5 apples, 5 bananas; 11 apples, 4 pears, 11 bananas; 8 apples, 1 pears, 6 bananas; 12 apples, 4 pears, 1 bananas | ||
Orders day 67: 10 apples, 9 bananas; 7 apples, 6 pears, 10 bananas; 9 apples, 8 pears, 2 bananas; 5 apples, 3 pears, 8 bananas; 1 apples, 1 pears, 13 bananas | ||
Orders day 68: 5 pears, 6 bananas; 1 apples, 14 pears, 4 bananas; 5 pears; 1 pears, 4 bananas | ||
Orders day 69: 13 apples, 1 pears, 18 bananas; 15 bananas; 3 apples, 2 pears, 7 bananas; 10 apples, 1 pears, 1 bananas; 6 apples, 4 pears, 9 bananas | ||
Orders day 70: 2 apples, 1 bananas; 8 apples, 1 pears, 1 bananas; 8 apples, 1 bananas; 12 apples, 1 pears | ||
Orders day 71: 1 apples, 18 pears, 2 bananas; 1 pears, 6 bananas; 8 pears, 9 bananas; 6 apples, 13 pears, 7 bananas; 20 pears, 5 bananas; 16 pears, 1 bananas | ||
Orders day 72: 10 apples, 1 pears; 8 pears; 8 apples, 8 pears, 5 bananas; 1 apples, 11 pears, 2 bananas; 4 pears, 1 bananas; 9 apples, 8 bananas | ||
Orders day 73: 12 apples, 1 pears, 4 bananas; 1 apples, 2 bananas; 6 apples, 8 pears, 5 bananas | ||
Orders day 74: 4 apples, 22 pears, 1 bananas; 5 apples, 6 pears; 4 apples, 11 pears, 4 bananas; 13 apples, 15 pears, 9 bananas | ||
Orders day 75: 13 apples, 3 pears; 14 apples, 9 pears; 17 apples, 6 pears, 1 bananas; 1 apples, 4 pears | ||
Orders day 76: 5 apples, 4 bananas; 8 apples, 3 pears, 10 bananas; 7 apples, 10 bananas; 9 apples, 17 bananas; 6 apples, 1 pears, 5 bananas; 5 apples, 1 bananas | ||
Orders day 77: 7 apples, 1 pears, 18 bananas; 13 apples, 4 pears, 21 bananas; 1 apples, 1 bananas; 8 apples, 14 bananas; 10 apples, 1 pears, 12 bananas; 14 apples, 4 bananas | ||
Orders day 78: 5 apples, 3 pears, 17 bananas; 3 apples, 9 pears, 5 bananas; 11 apples, 4 pears | ||
Orders day 79: 1 apples, 1 pears, 7 bananas; 20 apples, 1 pears, 9 bananas; 12 apples, 4 bananas | ||
Orders day 80: 10 apples, 12 pears, 11 bananas; 11 apples, 12 pears, 8 bananas; 11 apples, 7 pears, 8 bananas; 12 pears | ||
Orders day 81: 9 apples, 1 pears, 5 bananas; 10 apples, 1 pears, 1 bananas; 8 apples, 5 pears, 5 bananas; 15 apples, 7 pears, 3 bananas | ||
Orders day 82: 9 apples, 5 pears, 10 bananas; 14 apples, 16 pears, 9 bananas; 23 apples, 9 pears, 13 bananas; 3 apples, 10 pears, 11 bananas; 14 apples, 11 pears, 5 bananas | ||
Orders day 83: 7 apples, 3 pears, 4 bananas; 6 apples, 4 pears, 2 bananas; 5 apples, 3 pears, 2 bananas; 5 apples, 10 pears, 1 bananas; 5 bananas | ||
Orders day 84: 1 apples, 5 pears, 1 bananas; 1 apples, 4 pears, 4 bananas; 1 apples, 7 pears, 3 bananas; 1 pears; 1 pears | ||
Orders day 85: 5 apples, 5 pears; 7 apples, 1 bananas; 2 apples, 3 pears, 1 bananas; 10 apples, 2 pears; 7 apples, 7 pears, 1 bananas | ||
Orders day 86: 3 apples, 1 pears, 4 bananas; 10 apples, 4 pears; 14 apples, 5 pears; 17 apples, 3 pears; 13 apples, 2 pears; 5 apples, 4 bananas | ||
Orders day 87: 12 apples, 16 pears, 4 bananas; 9 apples, 1 pears, 19 bananas; 3 apples, 15 pears | ||
Orders day 88: 12 pears, 9 bananas; 3 apples, 1 pears, 8 bananas; 1 apples, 5 pears, 6 bananas; 1 pears, 9 bananas; 3 pears, 6 bananas | ||
Orders day 89: 1 apples, 4 pears, 17 bananas; 11 apples, 10 pears, 1 bananas; 5 apples, 7 pears, 9 bananas; 4 apples, 1 pears, 2 bananas; 8 apples, 5 pears, 16 bananas; 5 pears, 11 bananas | ||
Orders day 90: 6 apples, 3 pears, 13 bananas; 7 pears, 12 bananas; 1 apples, 4 pears, 8 bananas; 5 apples, 8 bananas | ||
Orders day 91: 7 apples, 1 pears, 4 bananas; 2 apples, 1 pears, 2 bananas; 5 apples, 1 pears; 6 pears, 2 bananas; 10 pears, 2 bananas; 1 apples, 18 pears | ||
Orders day 92: 14 apples, 7 pears; 14 apples, 7 pears, 1 bananas; 15 apples, 8 pears, 1 bananas; 10 apples, 5 pears | ||
Orders day 93: 9 apples, 16 bananas; 11 apples, 5 pears, 5 bananas; 1 apples, 3 pears, 16 bananas; 4 apples, 5 pears, 3 bananas; 10 apples, 8 pears, 8 bananas; 9 apples, 4 pears, 10 bananas | ||
Orders day 94: 11 apples, 19 pears, 4 bananas; 5 apples, 13 pears, 18 bananas; 6 apples, 15 pears, 16 bananas; 13 apples, 10 pears, 20 bananas; 3 apples, 10 pears | ||
Orders day 95: 5 apples, 9 pears, 1 bananas; 2 apples, 13 pears, 5 bananas; 6 apples, 3 pears, 5 bananas | ||
Orders day 96: 4 apples, 1 pears, 2 bananas; 5 apples, 1 pears, 2 bananas; 5 apples, 5 pears, 1 bananas; 1 apples, 8 pears; 3 apples, 8 pears, 1 bananas | ||
Orders day 97: 11 apples; 1 apples, 4 pears, 12 bananas; 8 apples, 5 pears, 13 bananas; 9 apples, 10 pears, 5 bananas; 1 apples, 11 pears, 13 bananas; 12 apples, 6 pears, 9 bananas | ||
Orders day 98: 6 apples, 10 pears, 1 bananas; 1 apples, 13 pears, 8 bananas; 9 pears, 10 bananas; 8 apples, 11 pears, 11 bananas; 8 apples, 1 pears, 8 bananas; 1 apples, 10 pears | ||
Orders day 99: 13 apples, 6 pears, 16 bananas; 6 apples, 15 pears, 13 bananas; 17 apples, 8 pears, 14 bananas | ||
Orders day 100: 13 apples, 1 bananas; 17 apples, 1 pears, 5 bananas; 4 apples, 1 bananas |