Skip to content

Commit dc88e66

Browse files
authored
Merge pull request #50 from sir-gon/feature/birthday-cake-candles
[Hacker Rank]: warmup: Birthday Cake Candles solved ✓
2 parents bf19224 + 982f0b2 commit dc88e66

File tree

6 files changed

+77
-1
lines changed

6 files changed

+77
-1
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
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() {
12+
if element > maximum
13+
{
14+
maximum = element;
15+
counter = 1;
16+
} else if element == maximum {
17+
counter += 1;
18+
}
19+
}
20+
21+
counter
22+
}
23+

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)