Compare commits
No commits in common. "25daf558e66ff00dfbcc1089ecf80a7759d0bdd5" and "a1f44e58866d5b09570703da67c9111dec6fe1b1" have entirely different histories.
25daf558e6
...
a1f44e5886
@ -129,7 +129,7 @@ impl From<&str> for Card {
|
|||||||
// Take a seat in the large pile of colorful cards. How many points are they worth in
|
// Take a seat in the large pile of colorful cards. How many points are they worth in
|
||||||
// total?
|
// total?
|
||||||
|
|
||||||
fn problem1<T: BufRead>(input: Lines<T>) -> u64 {
|
fn problem1(input: InputIter) -> u64 {
|
||||||
let cards: Vec<Card> = input
|
let cards: Vec<Card> = input
|
||||||
.map(|line| Card::from(line.unwrap().as_str()))
|
.map(|line| Card::from(line.unwrap().as_str()))
|
||||||
.collect();
|
.collect();
|
||||||
@ -199,7 +199,7 @@ fn problem2_award_copies<'a>(orig_cards: &'a Vec<Card>, card: &Card) -> Vec<&'a
|
|||||||
new_cards
|
new_cards
|
||||||
}
|
}
|
||||||
|
|
||||||
fn problem2<T: BufRead>(input: Lines<T>) -> u64 {
|
fn problem2(input: InputIter) -> u64 {
|
||||||
let orig_cards: Vec<Card> = input
|
let orig_cards: Vec<Card> = input
|
||||||
.map(|line| Card::from(line.unwrap().as_str()))
|
.map(|line| Card::from(line.unwrap().as_str()))
|
||||||
.collect();
|
.collect();
|
||||||
@ -218,29 +218,3 @@ fn problem2<T: BufRead>(input: Lines<T>) -> u64 {
|
|||||||
|
|
||||||
(won_cards.len() + orig_cards.len()) as u64
|
(won_cards.len() + orig_cards.len()) as u64
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
use crate::{problem1, problem2};
|
|
||||||
use std::io::{BufRead, Cursor};
|
|
||||||
|
|
||||||
const example_input: &str = "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";
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn problem1_example_test() {
|
|
||||||
let input = Cursor::new(example_input).lines();
|
|
||||||
|
|
||||||
assert_eq!(problem1(input), 13);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn problem2_example_test() {
|
|
||||||
let input = Cursor::new(example_input).lines();
|
|
||||||
assert_eq!(problem2(input), 30);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -17,11 +17,11 @@ fn main() {
|
|||||||
|
|
||||||
// PROBLEM 1 solution
|
// PROBLEM 1 solution
|
||||||
|
|
||||||
fn problem1<T: BufRead>(input: Lines<T>) -> u64 {
|
fn problem1(input: InputIter) -> u64 {
|
||||||
0
|
0
|
||||||
}
|
}
|
||||||
|
|
||||||
// PROBLEM 2 solution
|
// PROBLEM 2 solution
|
||||||
fn problem2<T: BufRead>(input: Lines<T>) -> u64 {
|
fn problem2(input: InputIter) -> u64 {
|
||||||
0
|
0
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user