diff options
Diffstat (limited to 'challenge-152/lubos-kolouch/java')
| -rw-r--r-- | challenge-152/lubos-kolouch/java/ch-1.java | 36 | ||||
| -rw-r--r-- | challenge-152/lubos-kolouch/java/ch-2.java | 58 |
2 files changed, 94 insertions, 0 deletions
diff --git a/challenge-152/lubos-kolouch/java/ch-1.java b/challenge-152/lubos-kolouch/java/ch-1.java new file mode 100644 index 0000000000..46bda99f11 --- /dev/null +++ b/challenge-152/lubos-kolouch/java/ch-1.java @@ -0,0 +1,36 @@ +class MinPathFinder { + + static int get_min_count(int[][] in_arr) { + int min_sum = 0; + + int i; + for (i = 0; i < in_arr.length; i++) { + int min = in_arr[i][0]; + + int j; + for (j = 0; j < in_arr[i].length; j++) { + if (in_arr[i][j] < min) { + min = in_arr[i][j]; + } + } + + min_sum += min; + } + return min_sum; + } + + public static void main(String[] args) { + + int[][] my_list = {{1}, {5, 3}, {2, 3, 4}, {7, 1, 0, 2}, {6, 4, 5, 2, 8}}; + + if (get_min_count(my_list) != 8) { + System.out.println("Failed test 1"); + } + + int[][] my_list2 = {{5}, {2, 3}, {4, 1, 5}, {0, 1, 2, 3}, {7, 2, 4, 1, 9}}; + + if (get_min_count(my_list2) != 9) { + System.out.println("Failed test 2"); + } + } +} diff --git a/challenge-152/lubos-kolouch/java/ch-2.java b/challenge-152/lubos-kolouch/java/ch-2.java new file mode 100644 index 0000000000..85e10266cb --- /dev/null +++ b/challenge-152/lubos-kolouch/java/ch-2.java @@ -0,0 +1,58 @@ +class Point { + int x, y; + + public Point(int x, int y) { + this.x = x; + this.y = y; + } +}; + +class Rectangle { + Point left, right; + + public Rectangle(Point left, Point right) { + this.left = left; + this.right = right; + } + + public int get_area() { + return Math.abs(this.left.x - this.right.x) * + Math.abs(this.left.y - this.right.y); + } +}; + +class OverlapArea { + + static int get_total_area(Rectangle first, Rectangle second) { + int area1 = first.get_area(); + int area2 = second.get_area(); + + // calculate the overlapping area + int x_dist = Math.min(first.right.x, second.right.x) - + Math.max(first.left.x, second.left.x); + int y_dist = Math.min(first.right.y, second.right.y) - + Math.max(first.left.y, second.left.y); + int areaI = 0; + if (x_dist > 0 && y_dist > 0) { + areaI = x_dist * y_dist; + } + + return (area1 + area2 - areaI); + } + + public static void main(String[] args) { + Rectangle first = new Rectangle(new Point(-1, 0), new Point(2, 2)); + Rectangle second = new Rectangle(new Point(0, -1), new Point(4, 4)); + + if (get_total_area(first, second) != 22) { + System.out.println("Failed test 1"); + } + + first = new Rectangle(new Point(-3, -1), new Point(1, 3)); + second = new Rectangle(new Point(-1, -3), new Point(2, 2)); + + if (get_total_area(first, second) != 25) { + System.out.println("Failed test 2"); + } + } +} |
