Skip to content

Commit 8c8e2e6

Browse files
author
Gonzalo Diaz
committed
[Hacker Rank]: warmup: Birthday Cake Candles solved ✓
1 parent bf19224 commit 8c8e2e6

File tree

6 files changed

+79
-1
lines changed

6 files changed

+79
-1
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// @link Problem definition [[docs/hackerrank/warmup/a_very_big_sum.md]]
2+
3+
4+
5+
#[allow(non_snake_case)]
6+
pub fn birthdayCakeCandles(candles: &[i32]) -> i32 {
7+
8+
let mut counter: i32 = 0;
9+
let mut maximum: &i32 = &candles[0];
10+
11+
for (_, element) in candles.iter().enumerate() {
12+
if element > maximum
13+
{
14+
maximum = element;
15+
counter = 1;
16+
} else {
17+
if element == maximum {
18+
counter += 1;
19+
}
20+
}
21+
}
22+
23+
counter
24+
}
25+

src/hackerrank/warmup/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ pub mod diagonal_difference;
66
pub mod plus_minus;
77
pub mod staircase;
88
pub mod mini_max_sum;
9+
pub mod birthday_cake_candles;
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
[
2+
{
3+
"input": [
4+
3,
5+
2,
6+
1,
7+
3
8+
],
9+
"expected": 2
10+
},
11+
{
12+
"input": [
13+
1,
14+
2,
15+
3,
16+
3
17+
],
18+
"expected": 2
19+
}
20+
]
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
use exercises::hackerrank::warmup::birthday_cake_candles::birthdayCakeCandles;
2+
use once_cell::sync::Lazy;
3+
use serde::Deserialize;
4+
5+
use crate::common;
6+
use common::utils::load_json;
7+
8+
#[cfg(test)]
9+
mod tests {
10+
use super::*;
11+
12+
#[derive(Debug, Deserialize)]
13+
struct BirthdayCakeCandlesTestCase {
14+
input: Vec<i32>,
15+
expected: i32,
16+
}
17+
18+
static TEST_DATA: Lazy<Vec<BirthdayCakeCandlesTestCase>> = Lazy::new(|| {
19+
load_json("tests/data/hackerrank/warmup/birthday_cake_candles.testcases.json")
20+
});
21+
22+
#[test]
23+
fn test_birthday_cake_candles() {
24+
println!("Testing hackerrank::warmup::birthday_cake_candles::birthdayCakeCandles()");
25+
26+
for test_case in TEST_DATA.iter() {
27+
let result = birthdayCakeCandles(test_case.input.as_slice());
28+
assert_eq!(result, test_case.expected);
29+
}
30+
}
31+
}

tests/hackerrank/warmup/mini_max_sum.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ mod tests {
2828
let result = mini_max_sum(slice);
2929
miniMaxSum(slice);
3030

31-
assert_eq!(result, test_case.expected);
31+
assert_eq!(result, test_case.expected, "hackerrank::warmup::mini_max_sum::mini_max_sum() => {}", test_case.title);
3232
}
3333
}
3434

tests/hackerrank/warmup/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,4 @@ pub mod diagonal_difference;
66
pub mod plus_minus;
77
pub mod staircase;
88
pub mod mini_max_sum;
9+
pub mod birthday_cake_candles;

0 commit comments

Comments
 (0)