Merge pull request 'refactor: Solution -> Task name' from refactor into master
Reviewed-on: https://hattori.ztsh.eu/stawros/hackerrank/pulls/4
This commit is contained in:
commit
1e6c7b52ae
17 changed files with 77 additions and 76 deletions
|
@ -1,4 +1,4 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.array_1d;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.Scanner;
|
||||
|
||||
|
@ -7,7 +7,7 @@ import java.util.Scanner;
|
|||
* Task spec: Java 8 + partially locked editor
|
||||
* source: https://www.hackerrank.com/challenges/java-1d-array-introduction/problem
|
||||
*/
|
||||
public class Solution {
|
||||
public class Array1D {
|
||||
|
||||
public static void main(String[] args) {
|
||||
Scanner scan = new Scanner(System.in);
|
|
@ -1,4 +1,4 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.array_1d;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Scanner;
|
||||
|
@ -8,7 +8,7 @@ import java.util.stream.Stream;
|
|||
/**
|
||||
* Custom modern class for 1D Array task.
|
||||
*/
|
||||
public class CustomSolution {
|
||||
public class Array1DCustom {
|
||||
|
||||
public static void main(String[] args) {
|
||||
var scan = new Scanner(System.in);
|
|
@ -1,9 +1,9 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.array_1d_pt2;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class Solution {
|
||||
public class Array1DPart2 {
|
||||
|
||||
public static boolean canWin(int leap, int[] game) {
|
||||
return move(0, leap, game, new int[]{});
|
|
@ -1,4 +1,4 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.array_2d;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
|
@ -14,7 +14,7 @@ import java.util.stream.Stream;
|
|||
* Java 2D Array task.
|
||||
* source: https://www.hackerrank.com/challenges/java-2d-array/problem
|
||||
*/
|
||||
public class Solution {
|
||||
public class Array2D {
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
|
|
@ -1,14 +1,12 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.comparator;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Comparator;
|
||||
import java.util.Scanner;
|
||||
|
||||
/**
|
||||
* source: <a href="https://www.hackerrank.com/challenges/java-comparator">Java Comparator</a>
|
||||
*/
|
||||
|
||||
class Checker implements Comparator<Player> {
|
||||
class Checker implements java.util.Comparator<Player> {
|
||||
|
||||
@Override
|
||||
public int compare(Player o1, Player o2) {
|
||||
|
@ -19,7 +17,7 @@ class Checker implements Comparator<Player> {
|
|||
}
|
||||
|
||||
// Hackerrank code below (slightly modified)
|
||||
public class Solution {
|
||||
public class Comparator {
|
||||
|
||||
public static void main(String[] args) {
|
||||
Scanner scan = new Scanner(System.in);
|
|
@ -1,23 +1,21 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.dequeue;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.Deque;
|
||||
import java.util.Scanner;
|
||||
import java.util.SortedMap;
|
||||
import java.util.TreeMap;
|
||||
import java.util.TreeSet;
|
||||
|
||||
/**
|
||||
* Java Dequeue task.
|
||||
* source: https://www.hackerrank.com/challenges/java-dequeue/problem
|
||||
*/
|
||||
public class Solution {
|
||||
public class Deque {
|
||||
|
||||
public static void main(String[] args) {
|
||||
var in = new Scanner(System.in);
|
||||
int n = in.nextInt();
|
||||
int m = in.nextInt();
|
||||
final Deque<Integer> deque = new ArrayDeque<>(m);
|
||||
final java.util.Deque<Integer> deque = new ArrayDeque<>(m);
|
||||
var counter = new Counter();
|
||||
for (int i = 0; i < m; i++) {
|
||||
var content = in.nextInt();
|
|
@ -1,10 +1,9 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.priority_queue;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.PriorityQueue;
|
||||
import java.util.Scanner;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
@ -12,7 +11,7 @@ import java.util.stream.Stream;
|
|||
class Priorities {
|
||||
|
||||
List<Student> getStudents(List<String> events) {
|
||||
var queue = new PriorityQueue<>(events.size(),
|
||||
var queue = new java.util.PriorityQueue<>(events.size(),
|
||||
Comparator.comparingDouble(Student::getCGPA)
|
||||
.reversed() // CGPA is the only descending here
|
||||
.thenComparing(Student::getName)
|
||||
|
@ -20,8 +19,7 @@ class Priorities {
|
|||
events.forEach(event -> {
|
||||
var line = event.split(" ");
|
||||
switch (line[0]) {
|
||||
case "ENTER" ->
|
||||
queue.add(new Student(Integer.parseInt(line[3]), line[1], Double.parseDouble(line[2])));
|
||||
case "ENTER" -> queue.add(new Student(Integer.parseInt(line[3]), line[1], Double.parseDouble(line[2])));
|
||||
case "SERVED" -> queue.poll();
|
||||
default -> throw new IllegalArgumentException();
|
||||
}
|
||||
|
@ -58,7 +56,7 @@ class Student {
|
|||
}
|
||||
|
||||
// https://www.hackerrank.com/challenges/java-priority-queue/problem
|
||||
public class Solution {
|
||||
public class PriorityQueue {
|
||||
|
||||
public static void main(String[] args) {
|
||||
int totalEvents = Integer.parseInt(scan.nextLine());
|
||||
|
@ -79,6 +77,7 @@ public class Solution {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static Scanner scan = new Scanner(System.in);
|
||||
private final static Priorities priorities = new Priorities();
|
||||
|
|
@ -1,19 +1,18 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.stack;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Scanner;
|
||||
import java.util.Stack;
|
||||
|
||||
/**
|
||||
* Java Stack task.
|
||||
* source: https://www.hackerrank.com/challenges/java-stack
|
||||
*/
|
||||
public class Solution {
|
||||
public class Stack {
|
||||
|
||||
public static void main(String[] args) {
|
||||
var scanner = new Scanner(System.in);
|
||||
while (scanner.hasNext()) {
|
||||
var stack = new Stack<Character>();
|
||||
var stack = new java.util.Stack<Character>();
|
||||
var line = scanner.next();
|
||||
for (char input : line.toCharArray()) {
|
||||
if (stack.empty()) {
|
|
@ -1,4 +1,4 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.subarray;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
|
@ -11,7 +11,7 @@ import java.util.stream.IntStream;
|
|||
* Java Subarray task.
|
||||
* source: https://www.hackerrank.com/challenges/java-negative-subarray/problem
|
||||
*/
|
||||
public class Solution {
|
||||
public class Subarray {
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
var reader = new BufferedReader(new InputStreamReader(System.in));
|
|
@ -1,19 +1,21 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.array_1d_pt2;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.List;
|
||||
import eu.ztsh.training.hackerrank.HackerRankTest;
|
||||
import eu.ztsh.training.hackerrank.SolutionClassDescription;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Nested;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class SolutionTest extends HackerRankTest {
|
||||
@DisplayName("HackerRank challenges: Array 1D, pt.2")
|
||||
class Array1DPart2Test extends HackerRankTest {
|
||||
|
||||
@Override
|
||||
protected SolutionClassDescription getSolutionClassDescription() {
|
||||
return new SolutionClassDescription(Solution.class);
|
||||
return new SolutionClassDescription(Array1DPart2.class);
|
||||
}
|
||||
|
||||
@Nested
|
||||
|
@ -51,31 +53,31 @@ class SolutionTest extends HackerRankTest {
|
|||
|
||||
@Test
|
||||
public void winningMoveTest() {
|
||||
assertThat(Solution.isWinningMove(0, 1, 2)).isFalse();
|
||||
assertThat(Solution.isWinningMove(1, 5, 6)).isTrue();
|
||||
assertThat(Array1DPart2.isWinningMove(0, 1, 2)).isFalse();
|
||||
assertThat(Array1DPart2.isWinningMove(1, 5, 6)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void moveForwardTest() {
|
||||
var game = new int[]{0, 0, 1};
|
||||
assertThat(Solution.canMoveForward(0, game)).isTrue();
|
||||
assertThat(Solution.canMoveForward(1, game)).isFalse();
|
||||
assertThat(Array1DPart2.canMoveForward(0, game)).isTrue();
|
||||
assertThat(Array1DPart2.canMoveForward(1, game)).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void moveBackwardTest() {
|
||||
var game = new int[]{0, 1, 0, 0, 1};
|
||||
assertThat(Solution.canMoveBackward(0, game)).isFalse();
|
||||
assertThat(Solution.canMoveBackward(3, game)).isTrue();
|
||||
assertThat(Solution.canMoveBackward(2, game)).isFalse();
|
||||
assertThat(Array1DPart2.canMoveBackward(0, game)).isFalse();
|
||||
assertThat(Array1DPart2.canMoveBackward(3, game)).isTrue();
|
||||
assertThat(Array1DPart2.canMoveBackward(2, game)).isFalse();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void jumpTest() {
|
||||
var game = new int[]{0, 0, 1, 1, 1, 0};
|
||||
assertThat(Solution.canJump(0, 3, game)).isFalse();
|
||||
assertThat(Solution.canJump(1, 3, game)).isFalse();
|
||||
assertThat(Solution.canJump(1, 4, game)).isTrue();
|
||||
assertThat(Array1DPart2.canJump(0, 3, game)).isFalse();
|
||||
assertThat(Array1DPart2.canJump(1, 3, game)).isFalse();
|
||||
assertThat(Array1DPart2.canJump(1, 4, game)).isTrue();
|
||||
}
|
||||
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.array_1d;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import eu.ztsh.training.hackerrank.HackerRankTest;
|
||||
import eu.ztsh.training.hackerrank.SolutionClassDescription;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
|
@ -8,27 +9,31 @@ import org.junit.jupiter.api.Nested;
|
|||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@DisplayName("HackerRank challenges: Java 1D Array")
|
||||
class SolutionTest {
|
||||
class Array1DTest {
|
||||
|
||||
@Nested
|
||||
@DisplayName("Original Solution class")
|
||||
class OriginalSolutionTest extends Array1DTest {
|
||||
class OriginalArray1DTest extends AbstractArray1DTest {
|
||||
|
||||
@Override
|
||||
protected SolutionClassDescription getSolutionClassDescription() {
|
||||
return new SolutionClassDescription(Solution.class);
|
||||
return new SolutionClassDescription(Array1D.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Nested
|
||||
@DisplayName("Custom Solution class")
|
||||
class CustomSolutionTest extends Array1DTest {
|
||||
class CustomArray1DTest extends AbstractArray1DTest {
|
||||
|
||||
@Override
|
||||
protected SolutionClassDescription getSolutionClassDescription() {
|
||||
return new SolutionClassDescription(CustomSolution.class);
|
||||
return new SolutionClassDescription(Array1DCustom.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
abstract static class Array1DTest extends HackerRankTest {
|
||||
abstract static class AbstractArray1DTest extends HackerRankTest {
|
||||
|
||||
@Test
|
||||
public void testCase0() {
|
|
@ -1,6 +1,7 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.array_2d;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import eu.ztsh.training.hackerrank.HackerRankTest;
|
||||
import eu.ztsh.training.hackerrank.SolutionClassDescription;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
|
@ -9,7 +10,7 @@ import org.junit.jupiter.api.Test;
|
|||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@DisplayName("HackerRank challenges: Java 2D Array")
|
||||
class SolutionTest extends HackerRankTest {
|
||||
class Array2DTest extends HackerRankTest {
|
||||
|
||||
@Test
|
||||
public void dummyInitTest() {
|
||||
|
@ -61,10 +62,9 @@ class SolutionTest extends HackerRankTest {
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected SolutionClassDescription getSolutionClassDescription() {
|
||||
return new SolutionClassDescription(Solution.class);
|
||||
return new SolutionClassDescription(Array2D.class);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.comparator;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import eu.ztsh.training.hackerrank.HackerRankTest;
|
||||
import eu.ztsh.training.hackerrank.SolutionClassDescription;
|
||||
|
@ -8,7 +8,7 @@ import org.junit.jupiter.api.Test;
|
|||
import java.util.List;
|
||||
|
||||
@DisplayName("HackerRank challenges: Java Comparator")
|
||||
class SolutionTest extends HackerRankTest {
|
||||
class ComparatorTest extends HackerRankTest {
|
||||
|
||||
@Test
|
||||
public void testCase0() {
|
||||
|
@ -33,7 +33,7 @@ class SolutionTest extends HackerRankTest {
|
|||
|
||||
@Override
|
||||
protected SolutionClassDescription getSolutionClassDescription() {
|
||||
return new SolutionClassDescription(Solution.class);
|
||||
return new SolutionClassDescription(Comparator.class);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,13 +1,14 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.dequeue;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import eu.ztsh.training.hackerrank.HackerRankTest;
|
||||
import eu.ztsh.training.hackerrank.SolutionClassDescription;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@DisplayName("HackerRank challenges: Java Dequeue")
|
||||
class SolutionTest extends HackerRankTest {
|
||||
class DequeTest extends HackerRankTest {
|
||||
|
||||
@Test
|
||||
public void testCase0() {
|
||||
|
@ -33,7 +34,7 @@ class SolutionTest extends HackerRankTest {
|
|||
|
||||
@Override
|
||||
protected SolutionClassDescription getSolutionClassDescription() {
|
||||
return new SolutionClassDescription(Solution.class);
|
||||
return new SolutionClassDescription(Deque.class);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,14 +1,15 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.priority_queue;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.List;
|
||||
import eu.ztsh.training.hackerrank.HackerRankTest;
|
||||
import eu.ztsh.training.hackerrank.SolutionClassDescription;
|
||||
import eu.ztsh.training.hackerrank.SolutionClassDescription.FieldModifier;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@DisplayName("HackerRank challenges: Java Priority Queue")
|
||||
class SolutionTest extends HackerRankTest {
|
||||
class PriorityQueueTest extends HackerRankTest {
|
||||
|
||||
@Test
|
||||
public void testCase0() {
|
||||
|
@ -36,10 +37,9 @@ class SolutionTest extends HackerRankTest {
|
|||
simpleAssert(input, expected);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected SolutionClassDescription getSolutionClassDescription() {
|
||||
return new SolutionClassDescription(Solution.class,
|
||||
return new SolutionClassDescription(PriorityQueue.class,
|
||||
"scan",
|
||||
new FieldModifier[]{FieldModifier.PRIVATE, FieldModifier.STATIC});
|
||||
}
|
|
@ -1,13 +1,14 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.stack;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.List;
|
||||
import eu.ztsh.training.hackerrank.HackerRankTest;
|
||||
import eu.ztsh.training.hackerrank.SolutionClassDescription;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@DisplayName("HackerRank challenges: Java Stack")
|
||||
class SolutionTest extends HackerRankTest {
|
||||
class StackTest extends HackerRankTest {
|
||||
|
||||
@Test
|
||||
public void testCase0() {
|
||||
|
@ -61,7 +62,7 @@ class SolutionTest extends HackerRankTest {
|
|||
|
||||
@Override
|
||||
protected SolutionClassDescription getSolutionClassDescription() {
|
||||
return new SolutionClassDescription(Solution.class);
|
||||
return new SolutionClassDescription(Stack.class);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,15 +1,14 @@
|
|||
package eu.ztsh.training.hackerrank.datastructures.subarray;
|
||||
package eu.ztsh.training.hackerrank.datastructures;
|
||||
|
||||
import java.util.List;
|
||||
import eu.ztsh.training.hackerrank.HackerRankTest;
|
||||
import eu.ztsh.training.hackerrank.SolutionClassDescription;
|
||||
import org.junit.jupiter.api.DisplayName;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import java.util.List;
|
||||
|
||||
@DisplayName("HackerRank challenges: Java Subarray")
|
||||
class SolutionTest extends HackerRankTest {
|
||||
class SubarrayTest extends HackerRankTest {
|
||||
|
||||
@Test
|
||||
public void testCase0() {
|
||||
|
@ -19,10 +18,9 @@ class SolutionTest extends HackerRankTest {
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected SolutionClassDescription getSolutionClassDescription() {
|
||||
return new SolutionClassDescription(Solution.class);
|
||||
return new SolutionClassDescription(Subarray.class);
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue