Resolves Java 2D Array Task
This commit is contained in:
parent
540a63dbc2
commit
3da2a03859
3 changed files with 152 additions and 0 deletions
|
@ -0,0 +1,55 @@
|
||||||
|
package eu.ztsh.training.hackerrank.datastructures.array_2d;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.IntStream;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Java 2D Array task.
|
||||||
|
* source: https://www.hackerrank.com/challenges/java-2d-array/problem
|
||||||
|
*/
|
||||||
|
public class Solution {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws IOException {
|
||||||
|
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
|
||||||
|
|
||||||
|
List<List<Integer>> arr = new ArrayList<>();
|
||||||
|
|
||||||
|
IntStream.range(0, 6).forEach(i -> {
|
||||||
|
try {
|
||||||
|
arr.add(
|
||||||
|
Stream.of(bufferedReader.readLine().replaceAll("\\s+$", "").split(" "))
|
||||||
|
.map(Integer::parseInt)
|
||||||
|
.collect(Collectors.toList())
|
||||||
|
);
|
||||||
|
} catch (IOException ex) {
|
||||||
|
throw new RuntimeException(ex);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var array = arr.stream().map(l -> l.stream().mapToInt(i -> i).toArray()).toArray(int[][]::new);
|
||||||
|
var max = new AtomicInteger(Integer.MIN_VALUE);
|
||||||
|
IntStream.range(1, 5).forEach(row -> IntStream.range(1, 5).forEach(col -> {
|
||||||
|
var result = countHourglass(array, row, col);
|
||||||
|
if (result > max.get()) {
|
||||||
|
max.set(result);
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
|
||||||
|
System.out.println(max.get());
|
||||||
|
bufferedReader.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static int countHourglass(int[][] array, int row, int col) {
|
||||||
|
return array[row - 1][col - 1] + array[row - 1][col] + array[row - 1][col + 1] +
|
||||||
|
array[row][col] +
|
||||||
|
array[row + 1][col - 1] + array[row + 1][col] + array[row + 1][col + 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,5 +1,8 @@
|
||||||
package eu.ztsh.training.hackerrank;
|
package eu.ztsh.training.hackerrank;
|
||||||
|
|
||||||
|
import java.io.BufferedReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStreamReader;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
import eu.ztsh.training.hackerrank.SolutionClassDescription.FieldModifier;
|
import eu.ztsh.training.hackerrank.SolutionClassDescription.FieldModifier;
|
||||||
|
@ -86,6 +89,17 @@ public class EnvironmentTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nested
|
||||||
|
@DisplayName("Test with BufferedReader created in main(String[]) method")
|
||||||
|
class EnvironmentReaderTest extends HackerRankEnvironmentTest {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected SolutionClassDescription getSolutionClassDescription() {
|
||||||
|
return new SolutionClassDescription(SampleSolutionWithInlineBufferedReader.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class SampleSolutionWithPrivateStaticScanner {
|
class SampleSolutionWithPrivateStaticScanner {
|
||||||
|
@ -123,3 +137,16 @@ class SampleSolutionWithInlineScanner {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class SampleSolutionWithInlineBufferedReader {
|
||||||
|
|
||||||
|
public static void main(String... args) throws IOException {
|
||||||
|
var bufferedReader = new BufferedReader(new InputStreamReader(System.in));
|
||||||
|
String line = bufferedReader.readLine();
|
||||||
|
do {
|
||||||
|
System.out.println(line);
|
||||||
|
line = bufferedReader.readLine();
|
||||||
|
} while (line != null);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
package eu.ztsh.training.hackerrank.datastructures.array_2d;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
@DisplayName("HackerRank challenges: Java 2D Array")
|
||||||
|
class SolutionTest extends HackerRankTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void dummyInitTest() {
|
||||||
|
assertThat(true).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCase0() {
|
||||||
|
simpleAssert(
|
||||||
|
List.of(
|
||||||
|
"1 1 1 0 0 0",
|
||||||
|
"0 1 0 0 0 0",
|
||||||
|
"1 1 1 0 0 0",
|
||||||
|
"0 0 2 4 4 0",
|
||||||
|
"0 0 0 2 0 0",
|
||||||
|
"0 0 1 2 4 0"
|
||||||
|
),
|
||||||
|
List.of("19")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCase1() {
|
||||||
|
simpleAssert(
|
||||||
|
List.of(
|
||||||
|
"1 1 1 0 0 0",
|
||||||
|
"0 1 0 0 0 0",
|
||||||
|
"1 1 1 0 0 0",
|
||||||
|
"0 9 2 -4 -4 0",
|
||||||
|
"0 0 0 -2 0 0",
|
||||||
|
"0 0 -1 -2 -4 0"
|
||||||
|
),
|
||||||
|
List.of("13")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCase3() {
|
||||||
|
simpleAssert(
|
||||||
|
List.of(
|
||||||
|
"-1 -1 0 -9 -2 -2",
|
||||||
|
"-2 -1 -6 -8 -2 -5",
|
||||||
|
"-1 -1 -1 -2 -3 -4",
|
||||||
|
"-1 -9 -2 -4 -4 -5",
|
||||||
|
"-7 -3 -3 -2 -9 -9",
|
||||||
|
"-1 -3 -1 -2 -4 -5"
|
||||||
|
),
|
||||||
|
List.of("-6")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected SolutionClassDescription getSolutionClassDescription() {
|
||||||
|
return new SolutionClassDescription(Solution.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue