refactor: Solution -> Task name

This commit is contained in:
Piotr Dec 2024-03-17 23:23:34 +01:00
parent f819b19c93
commit 468c97234e
Signed by: stawros
GPG key ID: F89F27AD8F881A91
17 changed files with 77 additions and 76 deletions

View file

@ -1,4 +1,4 @@
package eu.ztsh.training.hackerrank.datastructures.array_1d; package eu.ztsh.training.hackerrank.datastructures;
import java.util.Scanner; import java.util.Scanner;
@ -7,7 +7,7 @@ import java.util.Scanner;
* Task spec: Java 8 + partially locked editor * Task spec: Java 8 + partially locked editor
* source: https://www.hackerrank.com/challenges/java-1d-array-introduction/problem * source: https://www.hackerrank.com/challenges/java-1d-array-introduction/problem
*/ */
public class Solution { public class Array1D {
public static void main(String[] args) { public static void main(String[] args) {
Scanner scan = new Scanner(System.in); Scanner scan = new Scanner(System.in);

View file

@ -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.Arrays;
import java.util.Scanner; import java.util.Scanner;
@ -8,7 +8,7 @@ import java.util.stream.Stream;
/** /**
* Custom modern class for 1D Array task. * Custom modern class for 1D Array task.
*/ */
public class CustomSolution { public class Array1DCustom {
public static void main(String[] args) { public static void main(String[] args) {
var scan = new Scanner(System.in); var scan = new Scanner(System.in);

View file

@ -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.Arrays;
import java.util.Scanner; import java.util.Scanner;
public class Solution { public class Array1DPart2 {
public static boolean canWin(int leap, int[] game) { public static boolean canWin(int leap, int[] game) {
return move(0, leap, game, new int[]{}); return move(0, leap, game, new int[]{});

View file

@ -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.BufferedReader;
import java.io.IOException; import java.io.IOException;
@ -14,7 +14,7 @@ import java.util.stream.Stream;
* Java 2D Array task. * Java 2D Array task.
* source: https://www.hackerrank.com/challenges/java-2d-array/problem * source: https://www.hackerrank.com/challenges/java-2d-array/problem
*/ */
public class Solution { public class Array2D {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

View file

@ -1,14 +1,12 @@
package eu.ztsh.training.hackerrank.datastructures.comparator; package eu.ztsh.training.hackerrank.datastructures;
import java.util.Arrays; import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner; import java.util.Scanner;
/** /**
* source: <a href="https://www.hackerrank.com/challenges/java-comparator">Java Comparator</a> * source: <a href="https://www.hackerrank.com/challenges/java-comparator">Java Comparator</a>
*/ */
class Checker implements java.util.Comparator<Player> {
class Checker implements Comparator<Player> {
@Override @Override
public int compare(Player o1, Player o2) { public int compare(Player o1, Player o2) {
@ -19,7 +17,7 @@ class Checker implements Comparator<Player> {
} }
// Hackerrank code below (slightly modified) // Hackerrank code below (slightly modified)
public class Solution { public class Comparator {
public static void main(String[] args) { public static void main(String[] args) {
Scanner scan = new Scanner(System.in); Scanner scan = new Scanner(System.in);

View file

@ -1,23 +1,21 @@
package eu.ztsh.training.hackerrank.datastructures.dequeue; package eu.ztsh.training.hackerrank.datastructures;
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner; import java.util.Scanner;
import java.util.SortedMap; import java.util.SortedMap;
import java.util.TreeMap; import java.util.TreeMap;
import java.util.TreeSet;
/** /**
* Java Dequeue task. * Java Dequeue task.
* source: https://www.hackerrank.com/challenges/java-dequeue/problem * source: https://www.hackerrank.com/challenges/java-dequeue/problem
*/ */
public class Solution { public class Deque {
public static void main(String[] args) { public static void main(String[] args) {
var in = new Scanner(System.in); var in = new Scanner(System.in);
int n = in.nextInt(); int n = in.nextInt();
int m = 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(); var counter = new Counter();
for (int i = 0; i < m; i++) { for (int i = 0; i < m; i++) {
var content = in.nextInt(); var content = in.nextInt();

View file

@ -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.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.PriorityQueue;
import java.util.Scanner; import java.util.Scanner;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
@ -12,7 +11,7 @@ import java.util.stream.Stream;
class Priorities { class Priorities {
List<Student> getStudents(List<String> events) { List<Student> getStudents(List<String> events) {
var queue = new PriorityQueue<>(events.size(), var queue = new java.util.PriorityQueue<>(events.size(),
Comparator.comparingDouble(Student::getCGPA) Comparator.comparingDouble(Student::getCGPA)
.reversed() // CGPA is the only descending here .reversed() // CGPA is the only descending here
.thenComparing(Student::getName) .thenComparing(Student::getName)
@ -20,8 +19,7 @@ class Priorities {
events.forEach(event -> { events.forEach(event -> {
var line = event.split(" "); var line = event.split(" ");
switch (line[0]) { switch (line[0]) {
case "ENTER" -> case "ENTER" -> queue.add(new Student(Integer.parseInt(line[3]), line[1], Double.parseDouble(line[2])));
queue.add(new Student(Integer.parseInt(line[3]), line[1], Double.parseDouble(line[2])));
case "SERVED" -> queue.poll(); case "SERVED" -> queue.poll();
default -> throw new IllegalArgumentException(); default -> throw new IllegalArgumentException();
} }
@ -58,7 +56,7 @@ class Student {
} }
// https://www.hackerrank.com/challenges/java-priority-queue/problem // https://www.hackerrank.com/challenges/java-priority-queue/problem
public class Solution { public class PriorityQueue {
public static void main(String[] args) { public static void main(String[] args) {
int totalEvents = Integer.parseInt(scan.nextLine()); int totalEvents = Integer.parseInt(scan.nextLine());
@ -79,6 +77,7 @@ public class Solution {
} }
} }
} }
private static Scanner scan = new Scanner(System.in); private static Scanner scan = new Scanner(System.in);
private final static Priorities priorities = new Priorities(); private final static Priorities priorities = new Priorities();

View file

@ -1,19 +1,18 @@
package eu.ztsh.training.hackerrank.datastructures.stack; package eu.ztsh.training.hackerrank.datastructures;
import java.util.Map; import java.util.Map;
import java.util.Scanner; import java.util.Scanner;
import java.util.Stack;
/** /**
* Java Stack task. * Java Stack task.
* source: https://www.hackerrank.com/challenges/java-stack * source: https://www.hackerrank.com/challenges/java-stack
*/ */
public class Solution { public class Stack {
public static void main(String[] args) { public static void main(String[] args) {
var scanner = new Scanner(System.in); var scanner = new Scanner(System.in);
while (scanner.hasNext()) { while (scanner.hasNext()) {
var stack = new Stack<Character>(); var stack = new java.util.Stack<Character>();
var line = scanner.next(); var line = scanner.next();
for (char input : line.toCharArray()) { for (char input : line.toCharArray()) {
if (stack.empty()) { if (stack.empty()) {

View file

@ -1,4 +1,4 @@
package eu.ztsh.training.hackerrank.datastructures.subarray; package eu.ztsh.training.hackerrank.datastructures;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
@ -11,7 +11,7 @@ import java.util.stream.IntStream;
* Java Subarray task. * Java Subarray task.
* source: https://www.hackerrank.com/challenges/java-negative-subarray/problem * source: https://www.hackerrank.com/challenges/java-negative-subarray/problem
*/ */
public class Solution { public class Subarray {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
var reader = new BufferedReader(new InputStreamReader(System.in)); var reader = new BufferedReader(new InputStreamReader(System.in));

View file

@ -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.HackerRankTest;
import eu.ztsh.training.hackerrank.SolutionClassDescription; import eu.ztsh.training.hackerrank.SolutionClassDescription;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
class SolutionTest extends HackerRankTest { @DisplayName("HackerRank challenges: Array 1D, pt.2")
class Array1DPart2Test extends HackerRankTest {
@Override @Override
protected SolutionClassDescription getSolutionClassDescription() { protected SolutionClassDescription getSolutionClassDescription() {
return new SolutionClassDescription(Solution.class); return new SolutionClassDescription(Array1DPart2.class);
} }
@Nested @Nested
@ -51,31 +53,31 @@ class SolutionTest extends HackerRankTest {
@Test @Test
public void winningMoveTest() { public void winningMoveTest() {
assertThat(Solution.isWinningMove(0, 1, 2)).isFalse(); assertThat(Array1DPart2.isWinningMove(0, 1, 2)).isFalse();
assertThat(Solution.isWinningMove(1, 5, 6)).isTrue(); assertThat(Array1DPart2.isWinningMove(1, 5, 6)).isTrue();
} }
@Test @Test
public void moveForwardTest() { public void moveForwardTest() {
var game = new int[]{0, 0, 1}; var game = new int[]{0, 0, 1};
assertThat(Solution.canMoveForward(0, game)).isTrue(); assertThat(Array1DPart2.canMoveForward(0, game)).isTrue();
assertThat(Solution.canMoveForward(1, game)).isFalse(); assertThat(Array1DPart2.canMoveForward(1, game)).isFalse();
} }
@Test @Test
public void moveBackwardTest() { public void moveBackwardTest() {
var game = new int[]{0, 1, 0, 0, 1}; var game = new int[]{0, 1, 0, 0, 1};
assertThat(Solution.canMoveBackward(0, game)).isFalse(); assertThat(Array1DPart2.canMoveBackward(0, game)).isFalse();
assertThat(Solution.canMoveBackward(3, game)).isTrue(); assertThat(Array1DPart2.canMoveBackward(3, game)).isTrue();
assertThat(Solution.canMoveBackward(2, game)).isFalse(); assertThat(Array1DPart2.canMoveBackward(2, game)).isFalse();
} }
@Test @Test
public void jumpTest() { public void jumpTest() {
var game = new int[]{0, 0, 1, 1, 1, 0}; var game = new int[]{0, 0, 1, 1, 1, 0};
assertThat(Solution.canJump(0, 3, game)).isFalse(); assertThat(Array1DPart2.canJump(0, 3, game)).isFalse();
assertThat(Solution.canJump(1, 3, game)).isFalse(); assertThat(Array1DPart2.canJump(1, 3, game)).isFalse();
assertThat(Solution.canJump(1, 4, game)).isTrue(); assertThat(Array1DPart2.canJump(1, 4, game)).isTrue();
} }
} }

View file

@ -1,6 +1,7 @@
package eu.ztsh.training.hackerrank.datastructures.array_1d; package eu.ztsh.training.hackerrank.datastructures;
import java.util.List; import java.util.List;
import eu.ztsh.training.hackerrank.HackerRankTest; import eu.ztsh.training.hackerrank.HackerRankTest;
import eu.ztsh.training.hackerrank.SolutionClassDescription; import eu.ztsh.training.hackerrank.SolutionClassDescription;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
@ -8,27 +9,31 @@ import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@DisplayName("HackerRank challenges: Java 1D Array") @DisplayName("HackerRank challenges: Java 1D Array")
class SolutionTest { class Array1DTest {
@Nested @Nested
@DisplayName("Original Solution class") @DisplayName("Original Solution class")
class OriginalSolutionTest extends Array1DTest { class OriginalArray1DTest extends AbstractArray1DTest {
@Override @Override
protected SolutionClassDescription getSolutionClassDescription() { protected SolutionClassDescription getSolutionClassDescription() {
return new SolutionClassDescription(Solution.class); return new SolutionClassDescription(Array1D.class);
} }
} }
@Nested @Nested
@DisplayName("Custom Solution class") @DisplayName("Custom Solution class")
class CustomSolutionTest extends Array1DTest { class CustomArray1DTest extends AbstractArray1DTest {
@Override @Override
protected SolutionClassDescription getSolutionClassDescription() { 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 @Test
public void testCase0() { public void testCase0() {

View file

@ -1,6 +1,7 @@
package eu.ztsh.training.hackerrank.datastructures.array_2d; package eu.ztsh.training.hackerrank.datastructures;
import java.util.List; import java.util.List;
import eu.ztsh.training.hackerrank.HackerRankTest; import eu.ztsh.training.hackerrank.HackerRankTest;
import eu.ztsh.training.hackerrank.SolutionClassDescription; import eu.ztsh.training.hackerrank.SolutionClassDescription;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
@ -9,7 +10,7 @@ import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
@DisplayName("HackerRank challenges: Java 2D Array") @DisplayName("HackerRank challenges: Java 2D Array")
class SolutionTest extends HackerRankTest { class Array2DTest extends HackerRankTest {
@Test @Test
public void dummyInitTest() { public void dummyInitTest() {
@ -61,10 +62,9 @@ class SolutionTest extends HackerRankTest {
); );
} }
@Override @Override
protected SolutionClassDescription getSolutionClassDescription() { protected SolutionClassDescription getSolutionClassDescription() {
return new SolutionClassDescription(Solution.class); return new SolutionClassDescription(Array2D.class);
} }
} }

View file

@ -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.HackerRankTest;
import eu.ztsh.training.hackerrank.SolutionClassDescription; import eu.ztsh.training.hackerrank.SolutionClassDescription;
@ -8,7 +8,7 @@ import org.junit.jupiter.api.Test;
import java.util.List; import java.util.List;
@DisplayName("HackerRank challenges: Java Comparator") @DisplayName("HackerRank challenges: Java Comparator")
class SolutionTest extends HackerRankTest { class ComparatorTest extends HackerRankTest {
@Test @Test
public void testCase0() { public void testCase0() {
@ -33,7 +33,7 @@ class SolutionTest extends HackerRankTest {
@Override @Override
protected SolutionClassDescription getSolutionClassDescription() { protected SolutionClassDescription getSolutionClassDescription() {
return new SolutionClassDescription(Solution.class); return new SolutionClassDescription(Comparator.class);
} }
} }

View file

@ -1,13 +1,14 @@
package eu.ztsh.training.hackerrank.datastructures.dequeue; package eu.ztsh.training.hackerrank.datastructures;
import java.util.List; import java.util.List;
import eu.ztsh.training.hackerrank.HackerRankTest; import eu.ztsh.training.hackerrank.HackerRankTest;
import eu.ztsh.training.hackerrank.SolutionClassDescription; import eu.ztsh.training.hackerrank.SolutionClassDescription;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@DisplayName("HackerRank challenges: Java Dequeue") @DisplayName("HackerRank challenges: Java Dequeue")
class SolutionTest extends HackerRankTest { class DequeTest extends HackerRankTest {
@Test @Test
public void testCase0() { public void testCase0() {
@ -33,7 +34,7 @@ class SolutionTest extends HackerRankTest {
@Override @Override
protected SolutionClassDescription getSolutionClassDescription() { protected SolutionClassDescription getSolutionClassDescription() {
return new SolutionClassDescription(Solution.class); return new SolutionClassDescription(Deque.class);
} }
} }

View file

@ -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.HackerRankTest;
import eu.ztsh.training.hackerrank.SolutionClassDescription; import eu.ztsh.training.hackerrank.SolutionClassDescription;
import eu.ztsh.training.hackerrank.SolutionClassDescription.FieldModifier; import eu.ztsh.training.hackerrank.SolutionClassDescription.FieldModifier;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import java.util.List;
@DisplayName("HackerRank challenges: Java Priority Queue") @DisplayName("HackerRank challenges: Java Priority Queue")
class SolutionTest extends HackerRankTest { class PriorityQueueTest extends HackerRankTest {
@Test @Test
public void testCase0() { public void testCase0() {
@ -36,10 +37,9 @@ class SolutionTest extends HackerRankTest {
simpleAssert(input, expected); simpleAssert(input, expected);
} }
@Override @Override
protected SolutionClassDescription getSolutionClassDescription() { protected SolutionClassDescription getSolutionClassDescription() {
return new SolutionClassDescription(Solution.class, return new SolutionClassDescription(PriorityQueue.class,
"scan", "scan",
new FieldModifier[]{FieldModifier.PRIVATE, FieldModifier.STATIC}); new FieldModifier[]{FieldModifier.PRIVATE, FieldModifier.STATIC});
} }

View file

@ -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.HackerRankTest;
import eu.ztsh.training.hackerrank.SolutionClassDescription; import eu.ztsh.training.hackerrank.SolutionClassDescription;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import java.util.List;
@DisplayName("HackerRank challenges: Java Stack") @DisplayName("HackerRank challenges: Java Stack")
class SolutionTest extends HackerRankTest { class StackTest extends HackerRankTest {
@Test @Test
public void testCase0() { public void testCase0() {
@ -61,7 +62,7 @@ class SolutionTest extends HackerRankTest {
@Override @Override
protected SolutionClassDescription getSolutionClassDescription() { protected SolutionClassDescription getSolutionClassDescription() {
return new SolutionClassDescription(Solution.class); return new SolutionClassDescription(Stack.class);
} }
} }

View file

@ -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.HackerRankTest;
import eu.ztsh.training.hackerrank.SolutionClassDescription; import eu.ztsh.training.hackerrank.SolutionClassDescription;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat; import java.util.List;
@DisplayName("HackerRank challenges: Java Subarray") @DisplayName("HackerRank challenges: Java Subarray")
class SolutionTest extends HackerRankTest { class SubarrayTest extends HackerRankTest {
@Test @Test
public void testCase0() { public void testCase0() {
@ -19,10 +18,9 @@ class SolutionTest extends HackerRankTest {
); );
} }
@Override @Override
protected SolutionClassDescription getSolutionClassDescription() { protected SolutionClassDescription getSolutionClassDescription() {
return new SolutionClassDescription(Solution.class); return new SolutionClassDescription(Subarray.class);
} }
} }