diff --git a/Week-01/Day-03_Barbecue-Skewers/barbecue_skewers/Cargo.toml b/Week-01/Day-03_Barbecue-Skewers/barbecue_skewers/Cargo.toml new file mode 100644 index 0000000..76ce6d4 --- /dev/null +++ b/Week-01/Day-03_Barbecue-Skewers/barbecue_skewers/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "barbecue_skewers" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/Week-01/Day-03_Barbecue-Skewers/barbecue_skewers/src/main.rs b/Week-01/Day-03_Barbecue-Skewers/barbecue_skewers/src/main.rs new file mode 100644 index 0000000..cce7c4f --- /dev/null +++ b/Week-01/Day-03_Barbecue-Skewers/barbecue_skewers/src/main.rs @@ -0,0 +1,57 @@ +fn bbq_skewers(skewers: &'static [&str]) -> (usize, usize) { + let mut vegetarian = 0; + + for skewer in skewers { + if ! skewer.contains('x') { + vegetarian += 1; + } + } + + return (vegetarian, skewers.len() - vegetarian); +} + +#[test] +fn test1() { + assert_eq!( + bbq_skewers(&[ + "--xo--x--ox--", + "--xx--x--xx--", + "--oo--o--oo--", + "--xx--x--ox--", + "--xx--x--ox--" + ]), + (1, 4) + ); +} + +#[test] +fn test2() { + assert_eq!( + bbq_skewers(&[ + "--oooo-ooo---", + "--xx--x--xx--", + "--o---o--oo--", + "--xx--x--ox--", + "--xx--x--ox--" + ]), + (2, 3) + ); +} + +#[test] +fn test3() { + assert_eq!( + bbq_skewers(&[ + "--oooo-ooo--", + "--xxxxxxxx--", + "--o---", + "-o-----o---x--", + "--o---o-----" + ]), + (3, 2) + ); +} + +fn main() { + println!("Run `cargo test`."); +}