Skip to content

Commit cc599fc

Browse files
* docs: kata description * feat: kata/even-numbers-in-an-array --------- Co-authored-by: ParanoidUser <5120290+ParanoidUser@users.noreply.github.com>
1 parent 4258b15 commit cc599fc

File tree

4 files changed

+47
-0
lines changed

4 files changed

+47
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# [Even numbers in an array](https://www.codewars.com/kata/even-numbers-in-an-array "https://www.codewars.com/kata/5a431c0de1ce0ec33a00000c")
2+
3+
Given an `array` of numbers, return a new array of length `number` containing the last even numbers from the original array (in the same
4+
order). The original array will be not empty and will contain at least "number" even numbers.
5+
6+
For example:
7+
8+
```
9+
([1, 2, 3, 4, 5, 6, 7, 8, 9], 3) => [4, 6, 8]
10+
([-22, 5, 3, 11, 26, -6, -7, -8, -9, -8, 26], 2) => [-8, 26]
11+
([6, -25, 3, 7, 5, 5, 7, -3, 23], 1) => [6]
12+
```
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
interface Kata {
2+
static int[] evenNumbers(int[] arr, int n) {
3+
int[] evens = new int[n];
4+
for (int i = arr.length - 1; n > 0; i--) {
5+
if (arr[i] % 2 == 0) {
6+
evens[--n] = arr[i];
7+
}
8+
}
9+
return evens;
10+
}
11+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
2+
import static org.junit.jupiter.params.provider.Arguments.arguments;
3+
4+
import java.util.stream.Stream;
5+
import org.junit.jupiter.params.ParameterizedTest;
6+
import org.junit.jupiter.params.provider.Arguments;
7+
import org.junit.jupiter.params.provider.MethodSource;
8+
9+
class EvenNumbersTest {
10+
private static Stream<Arguments> testData() {
11+
return Stream.of(
12+
arguments(new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9}, 3, new int[]{4, 6, 8}),
13+
arguments(new int[]{-22, 5, 3, 11, 26, -6, -7, -8, -9, -8, 26}, 2, new int[]{-8, 26}),
14+
arguments(new int[]{6, -25, 3, 7, 5, 5, 7, -3, 23}, 1, new int[]{6})
15+
);
16+
}
17+
18+
@ParameterizedTest
19+
@MethodSource("testData")
20+
void sample(int[] array, int number, int[] expected) {
21+
assertArrayEquals(expected, Kata.evenNumbers(array, number));
22+
}
23+
}

kata/7-kyu/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,7 @@
159159
- [Eliminate the intruders! Bit manipulation](eliminate-the-intruders-bit-manipulation "5a0d38c9697598b67a000041")
160160
- [Email Address Obfuscator](email-address-obfuscator "562d8d4c434582007300004e")
161161
- [E.S.P. Cards](esp-cards "596ef174e4cab6813600004d")
162+
- [Even numbers in an array](even-numbers-in-an-array "5a431c0de1ce0ec33a00000c")
162163
- [Even or Odd - Which is Greater?](even-or-odd-which-is-greater "57f7b8271e3d9283300000b4")
163164
- [Excel sheet column numbers](excel-sheet-column-numbers "55ee3ebff71e82a30000006a")
164165
- [Excessively Abundant Numbers](excessively-abundant-numbers "56a75b91688b49ad94000015")

0 commit comments

Comments
 (0)