8000 2020-12-01 Update: Added "Who won the election" and "Opposites Attract" · fartem/codewars-java@4a949a5 · GitHub
[go: up one dir, main page]

Skip to content

Commit 4a949a5

Browse files
committed
2020-12-01 Update: Added "Who won the election" and "Opposites Attract"
1 parent 9de84bd commit 4a949a5

File tree

6 files changed

+147
-1
lines changed

6 files changed

+147
-1
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ Profile on Codewars: [fartem](https://www.codewars.com/users/fartem).
4949
| N-th Power | [Link](https://www.codewars.com/kata/57d814e4950d8489720008db) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/NthPower.java) |
5050
| Number toString | [Link](https://www.codewars.com/kata/53934feec44762736c00044b) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/NumberToString.java) |
5151
| Opposite number | [Link](https://www.codewars.com/kata/56dec885c54a926dcd001095) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/OppositeNumber.java) |
52+
| Opposites Attract | [Link](https://www.codewars.com/kata/555086d53eac039a2a000083) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/OppositesAttract.java) |
5253
| Parse nice int from char problem | [Link](https://www.codewars.com/kata/557cd6882bfa3c8a9f0000c1) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/ParseNiceIntFromCharProblem.java) |
5354
| Printing Array elements with Comma delimiters | [Link](https://www.codewars.com/kata/56e2f59fb2ed128081001328) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/PrintingArrayElementsWithCommaDelimiters.java) |
5455
| Push a hash/an object into array | [Link](https://www.codewars.com/kata/527b3cd0492b6b15250060af) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu8/PushAHashAnObjectIntoArray.java) |
@@ -171,6 +172,7 @@ Profile on Codewars: [fartem](https://www.codewars.com/users/fartem).
171172
| Valid Braces | [Link](https://www.codewars.com/kata/5277c8a221e209d3f6000b56) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/ValidBraces.java) |
172173
| Valid Phone Number | [Link](https://www.codewars.com/kata/525f47c79f2f25a4db000025) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/ValidPhoneNumber.java) |
173174
| Versions manager | [Link](https://www.codewars.com/kata/5bc7bb444be9774f100000c3) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/VersionsManager.java) |
175+
| Who won the election | [Link](https://www.codewars.com/kata/554910d77a3582bbe300009c) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/WhoWonTheElection.java) |
174176
| World Bits War | [Link](https://www.codewars.com/kata/58865bfb41e04464240000b0) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/WorldBitsWar.java) |
175177
| Write Number in Expanded Form | [Link](https://www.codewars.com/kata/5842df8ccbd22792a4000245) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/WriteNumberInExpandedForm.java) |
176178
| Your order, please | [Link](https://www.codewars.com/kata/55c45be3b2079eccff00010f) | [Link](https://github.com/fartem/codewars-java/blob/master/src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu6/YourOrderPlease.java) |

src/main/java/com/smlnskgmail/jaman/codewarsjava/kyu5/CountIPAddresses.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public long solution() {
1717

1818
private long convertToLong(String ip) {
1919
long res = 0;
20-
for (String s : ip.split("[.]") ) {
20+
for (String s : ip.split("[.]")) {
2121
res = res * 256 + Long.parseLong(s);
2222
}
2323
return res;
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu6;
2+
3+
import java.util.*;
4+
5+
// https://www.codewars.com/kata/554910d77a3582bbe300009c
6+
public class WhoWonTheElection {
7+
8+
private final List<String> input;
9+
10+
public WhoWonTheElection(List<String> input) {
11+
this.input = input;
12+
}
13+
14+
public String solution() {
15+
Map<String, Integer> result = new HashMap<>();
16+
input.forEach(b -> result.merge(b, 1, Integer::sum));
17+
String winner = Collections.max(
18+
result.entrySet(),
19+
Comparator.comparingInt(Map.Entry::getValue)
20+
).getKey();
21+
int votesForWinner = result.get(winner);
22+
if (result.values().stream().filter(i -> i == votesForWinner).count() > 1) {
23+
return null;
24+
}
25+
return (votesForWinner <= input.size() / 2) ? null : winner;
26+
}
27+
28+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu8;
2+
3+
// https://www.codewars.com/kata/555086d53eac039a2a000083
4+
public class OppositesAttract {
5+
6+
private final int firstFlower;
7+
private final int secondFlower;
8+
9+
public OppositesAttract(int firstFlower, int secondFlower) {
10+
this.firstFlower = firstFlower;
11+
this.secondFlower = secondFlower;
12+
}
13+
14+
public boolean solution() {
15+
return (firstFlower + secondFlower) % 2 != 0;
16+
}
17+
18+
}
+60Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu6;
2+
3+
import org.junit.Test;
4+
5+
import java.util.Arrays;
6+
import java.util.Collections;
7+
8+
import static org.junit.Assert.assertEquals;
9+
import static org.junit.Assert.assertNull;
10+
11+
public class WhoWonTheElectionTest {
12+
13+
@Test
14+
public void testGetWinner01() {
15+
assertEquals(
16+
"A",
17+
new WhoWonTheElection(
18+
Collections.singletonList("A")
19+
).solution()
20+
);
21+
}
22+
23+
@Test
24+
public void testGetWinner02() {
25+
assertEquals(
26+
"A",
27+
new WhoWonTheElection(
28+
Arrays.asList("A", "A", "A", "B", "B", "B", "A")
29+
).solution()
30+
);
31+
}
32+
33+
@Test
34+
public void testGetWinner03() {
35+
assertNull(
36+
new WhoWonTheElection(
37+
Arrays.asList("A", "A", "A", "B", "B", "B")
38+
).solution()
39+
);
40+
}
41+
42+
@Test
43+
public void testGetWinner04() {
44+
assertNull(
45+
new WhoWonTheElection(
46+
Arrays.asList("A", "A", "A", "B", "C", "B")
47+
).solution()
48+
);
49+
}
50+
51+
@Test
52+
public void testGetWinner05() {
53+
assertNull(
54+
new WhoWonTheElection(
55+
Arrays.asList("A", "A", "B", "B", "C")
56+
).solution()
57+
);
58+
}
59+
60+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.smlnskgmail.jaman.codewarsjava.kyu8;
2+
3+
import org.junit.Test;
4+
5+
import static org.junit.Assert.assertFalse;
6+
import static org.junit.Assert.assertTrue;
7+
8+
public class OppositesAttractTest {
9+
10+
@Test
11+
public void testOddAndEven() {
12+
assertTrue(
13+
new OppositesAttract(1, 4).solution()
14+
);
15+
}
16+
17+
@Test
18+
public void testEvenAndEven() {
19+
assertFalse(
20+
new OppositesAttract(2, 2).solution()
21+
);
22+
}
23+
24+
@Test
25+
public void testOddAndOdd() {
26+
assertFalse(
27+
new OppositesAttract(1, 1).solution()
28+
);
29+
}
30+
31+
@Test
32+
public void testEvenAndOdd() {
33+
assertTrue(
34+
new OppositesAttract(0, 1).solution()
35+
);
36+
}
37+
38+
}

0 commit comments

Comments
 (0)
0