Problem Statement
64 cubes are packed into a four-by-four-by-four lattice. (No, not the kind used to make salad. Forget lettuce! Think of a three-dimensional grid.) Each cube is either black or white.
The lattice configuration is described by a
We say that a line consists of four cubes, all the same color, arranged sequentially in any orthogonal or diagonal direction. A line may be such that consecutive cubes touch each other with their faces, or such that they touch with their edges, or such that they touch with their corners. All four cubes must be aligned in the same direction. Two lines are distinct if they are not formed of the same four cubes.
Given a lattice configuration and a color, count the number of distinct lines formed by cubes of that color.
Definition
- Class:
- Cubism
- Method:
- lines
- Parameters:
- String[], String
- Returns:
- int
- Method signature:
- int lines(String[] lattice, String color)
- (be sure your method is public)
Constraints
- lattice contains exactly four elements
- each element of lattice is exactly 16 characters long
- each character is either 'B' or 'W'
- color is either "black" or "white"
Examples
{"BBBBBWWWBWWWBWWW", "BWWWWWWWWWWWWWWW", "BWWWWWWWWWWWWWWW", "BWWWWWWWWWWWWWWW"}
"black"
Returns: 3
Black lines lie along three edges of the lattice and meet at a corner.
{"BWWWWWWWWWWWWWWW", "WWWWWBWWWWWWWWWW", "WWWWWWWWWWBWWWWW", "WWWWWWWWWWWWWWWB"}
"black"
Returns: 1
A black line stretches diagonally between two corners, its endpoints as far apart as any two cubes of the lattice can be.
{"WWWWWWWWWWWWWWWW", "WWWWWWWWWWWWWWWW", "WWWWWWWWWWWWWWWW", "WWWWWWWWWWWWWWWW"}
"black"
Returns: 0
There are no black lines here.
{"WWWWWWWWWWWWWWWW", "WWWWWWWWWWWWWWWW", "WWWWWWWWWWWWWWWW", "WWWWWWWWWWWWWWWW"}
"white"
Returns: 76
This is the greatest number of lines possible in a lattice.
{"WWWWWWWWWBWWWWWW", "WWWBWWWWWWWWWWWW", "WWWWWWWWWWWWBWWW", "WWWBWWWWWWWWWWWW"}
"white"
Returns: 58
{"BWBWBWBWBWBWBWBW","BWBWBWBWBWBWBWBW", "BWBWBWBWBWBWBWBW","BWBWBWBWBWBWBWBW"}
"white"
Returns: 20
{"WBWBBWBWWBWBBBBW", "BWWWWBBBWWBWBBWB", "BBWBBBWBWWWBWBWW", "BBBBWBBWWBWWBWBB"}
"white"
Returns: 4
{"WWBWBBBBBBWBWBWB", "WWBBBWWBWBWBBBWW", "BBWBBWWWWBBWBBBW", "BWBWBBBWBWBBBWBW"}
"white"
Returns: 2
{"BWBWWWWWBBBWBWBB", "BBWBBBWBBWWWWWWB", "WBWWBBWBBWWBBWBB", "BWBWBBBBWWBWWBBW"}
"black"
Returns: 3
{"BBWWBBBWWWWBWBBW", "BWBWWWBWWWBBBWBW", "WWWBWWWWBBBWWBWW", "BBWWWWBWWBBBBWWW"}
"white"
Returns: 7
{"BWWBWWWWWWBWWBWB", "BBWWWBWWWWWBWWBB", "WBWBBWWWWWBWWWBW", "BBBWBBBBWBBWWBBB"}
"black"
Returns: 5
{"BBBWWBBBBWBWWWWW", "BWBWBBWBBWBBBWBW", "WBWBBWBWWWBWBWBW", "WBWWWWWBBWBWWWWB"}
"white"
Returns: 5
{"WBWWWBWWBWBBBWBW", "WBWWBBWWWBWBBBWB", "WWBWBWBBWBWBBBWB", "WBWBWWBWBBWWBWBB"}
"black"
Returns: 4
{"WBBBBWWBBBBWBBWW", "BBWWWWBWWWWWBBWW", "BWWWBWBBWWBBWWBB", "WWWWBWBBBBWWWWWB"}
"white"
Returns: 8
{"WBBWWBWWWWWBWBBB", "WBBWWWWBWWWWBWBW", "BWBWBBBWWBBBWBWB", "BBBBWWBBWWWWBWBW"}
"white"
Returns: 7
{"BWBBBBWWBWWBBWBB", "WWBWBWBWWWBBBBBB", "WWWWBWWBBWBWWBWB", "BBBWBBWBBWWWBWWB"}
"white"
Returns: 4
{"BWBWBBWWBWWWWBWW", "WBWWWBWWBBBWWWWB", "WBWWWWBBBBWWWBBW", "BBWWWBBBBBBWWBWW"}
"white"
Returns: 8
{"BBBWBWWBBBBBWBWB", "BWWBWBWWWBBWWBBW", "BBWBBBBWBBBBWBBB", "WBBWBBWBBBWWBBWB"}
"white"
Returns: 0
{"WBWWBWWBWBWBWWBW", "WWWBWWWWBWWWWWBB", "WBWWWBWBBWWWWWBB", "WWWWWBWWBBWBBBWW"}
"white"
Returns: 15
{"BWWWWWBBWBBWBBBW", "WBWWWWBBBWBWWBBB", "BWBBWBWBWBBWBBBB", "BWWBBWBBWWBWWBBB"}
"white"
Returns: 1
{"WWBBBBBBBWWBBWWW", "BWBWBWWBBBBBWBWW", "BBBWWWBWBWWBBBWB", "WWBBWBBBWWBBWBBW"}
"black"
Returns: 6
{"WBWWWWWBWWWWBWBB", "WWBWBWWWBWWWBWWB", "WWWBBBWBBWBBBBWW", "WBWBBWBWWWWWBWBW"}
"white"
Returns: 8
{"WWWBWBWBWWBBWBWW", "WBWBBWBWWWBWWBWW", "WWWBBBWWBWBWWWWW", "BBBBWBBWWBWBWBWW"}
"white"
Returns: 7
{"WWBWBWWWWBBWBBBW", "BWWBWWBBBBWWWBBW", "BBWBWBBWBWBBWBBB", "WWWBBWWBWBWWBWWB"}
"white"
Returns: 4
{"WWWWBWBBWBWWWWWW", "BBWWWWWWBWBWBBBB", "BWWWWBWWWBBWBWBB", "BWWWWBWWBBBWBBWW"}
"black"
Returns: 2
{"BBWBWWBBWWBWBWBW", "BBWWBBWWWBBWWBWB", "WWWBBWBBBBBBBWBB", "WWWWBWWBBBWBBBBB"}
"white"
Returns: 2
{"WWWBBWBBWBBBWWWB", "WBBBWBBBBWWBWWBW", "WBBBWWBBWWBBWBBW", "WBWWBBBBBWBBBWBB"}
"white"
Returns: 2
{"WWWBWWBWWBBWWWWW", "BBWWBWBBWBBBWBWB", "WWBBWBBWWWBBBBBW", "BWBWWBWWBBWWWWWB"}
"white"
Returns: 3
{"WWWBBWBWBBWWBBBW", "WBWWWWWBBBWBBWWB", "WWWWBWWWWBWWBWWW", "BWWBBBBWWBBBBWBW"}
"white"
Returns: 8
{"WBBBBWWWWBWBWBWW", "WBBWBWWBWWWWWBWB", "BBWWWBWWBWBBWWWB", "WWBWWWBWWWWBBBWW"}
"white"
Returns: 9
{"WWWBWBBWWWWWBBBB", "WBWWBWBWWWBBBBWW", "WWBBWWWBBBWBWBWB", "BWWBBBBBBWWBBBWB"}
"black"
Returns: 8
{"BBWWWWWWBBWBBWBB", "WWWBWBBBWWWBWBWB", "BWWWWBWBWWWWWBBB", "BWBBBWWWBBWBBBWB"}
"white"
Returns: 5
{"WBBWBWWBWBWBWBWW", "WWBBWBBBWBBWBBBW", "WBBWBWWBBBWWWWBB", "BWWBWBBBWBWWWBBW"}
"white"
Returns: 1
{"BBWWBWBWBWBWBBBB", "BWWBBBBBBBWWWWBW", "BWWWWWWBWWWWBBBW", "WBWWWBBBWWBBWBBB"}
"white"
Returns: 5
{"WBBBBWWWBBBBBBWB", "BWWBWBBBWBWBWBWB", "BWBBBWWBBBWWWWBB", "WWBWWBBBBBBWBWWW"}
"black"
Returns: 4
{"BBBWBWWWWWBWWWWB", "WBBBWWWWWWBWWBBB", "WBWWBWWWBWBBWBWB", "BWWBBBBWWWWWBWBB"}
"white"
Returns: 8
{"WWBBWWWBBBWBWBWB", "BWBWBBBBBWBBWWWB", "WBWWBWBWWWBBBBWB", "WBWBBWBWWBWWWWBW"}
"white"
Returns: 2
{"BBBWBBWWBBWWWWWB", "BBWBWBBWWBWWBBBW", "WWBWWBBWWWBBBBWB", "BWBBWBBWWBBBWBWB"}
"white"
Returns: 2
{"WWBWWWWBBBWBWBWB", "WWWWWWBWWWWWWWWB", "BWWBBBBBBBBWBBBW", "BBBBWWBBWWWBBBWW"}
"black"
Returns: 4
{"WBBBWWWWWWBWWBWB", "BBWWWWWBWBBBBWWW", "BBBBWBBWBBWBWBBB", "BBWWWBWBBBWBWWWB"}
"black"
Returns: 6
{"BWWBWWWWWWBBBBBB", "BWWBBBWWBWWBBBBW", "BBWBBBWWWBWWWWBB", "WWWBWBWBWBBWBWWW"}
"black"
Returns: 3
{"BBWBWWWWWWBWBWBW", "WBBBBBWBBBWBWWBW", "WBBBBWBWWBWBBBBW", "WWWBWWWBWWBWWWBB"}
"white"
Returns: 6
{"BWBBWBBWWBWWWWBW", "BBBWWWBBWBWBWWWB", "BBWBBBBBWWWWBBWW", "WWWWWBWWBBBWBWBW"}
"black"
Returns: 1
{"WWBBWBBBBWBBWWWB", "BBWWBWWBWBBWBWBB", "WWWBBBWBBWWBWWBW", "BWBWBBBWBBBWWWWB"}
"white"
Returns: 3
{"BBBBWBBBWWBWBWWB", "WBWBBBWWWWWBBWBB", "BBBWWWWBBWBWWBWB", "BBBBWWWWWBWWBWBB"}
"black"
Returns: 10
{"WBBWWBBBWBBWWBWB", "BBBWBBWWBBBWWWBB", "WWBWWWWWWBBBWWBW", "WWBBWBBBWWBWWBBB"}
"white"
Returns: 5
{"BBWBWWBWBWBBBBWB", "BBBWBWBBWWBWWBWB", "BBBBBBBBWBBBWWBB", "WWBWWWBBWWBWWWBB"}
"white"
Returns: 2
{"WWBBWBWBBBBBBBBW", "WBBWBWWBBBWBBWBW", "BWWWBBWBBBWBBWWW", "WBBWBWBBBBWWBWBB"}
"white"
Returns: 2
{"BWBWWWBBWBWBBWBB", "BBWWBWBBWWWBBBBB", "BWBWBWWBBBWWBBWB", "BBBWWWBWWWBWBWWB"}
"black"
Returns: 7
{"BBBBBWWWBWBBBBWB", "WBWWBWWBWWBBWBBB", "BWBWBBWBWWBWWWBW", "BWBWWBWBBBWBWWBW"}
"white"
Returns: 3
{"WBBBBWWWBBBWBWWW", "WBWWWWWBBWWBWBWB", "BWBWBWWBBWWWBWBW", "BBBWWBBWWWBBWWBW"}
"white"
Returns: 7
{"BWWWWBWWWWBBWBBW", "BBWWBWWWBWBWWWWW", "WBWWWBBWBBBWWBBB", "BWBWBWBBWWBWWWWB"}
"black"
Returns: 3
{"BBWWWBWBWWBWBWBW", "BWBBBWBBWBBWWBBB", "WBBBWBBBWBWBBWWW", "BBWWBBBBWBWBWWWB"}
"black"
Returns: 5
{"BBBBBWBWWWWBWWBB", "BBWWWBWWWBBWWBBW", "WWBBWBWBWBBBWWWW", "BBWBWBBBBBWBBWBB"}
"white"
Returns: 3
{"WBWBBWWWBWBBWBWB", "WWBBWBBWBWWBBWBB", "BBWWWWWBBBWBBBWW", "WWBWBBBWBWBWWBWB"}
"white"
Returns: 3
{"BBBWWWBWBWBWBBBB", "WWWWBBWBBWBWWWWB", "BBBBBBBWBBBBBWWW", "WWBBWBBBBBWWBBWW"}
"black"
Returns: 11
{"BBWWBWWWWBWBBWBW", "BBBBWBBWBBBBWBBB", "WWWWWBBWBBWWBBBB", "WBBBWWBBWBBWWWWW"}
"black"
Returns: 10
{"BBWWWBWWWWBBWBWW", "BBBBWBWWWWWBWBWW", "BBWBBWWWBBWWWWBW", "WWWWBWWBWBBBBBBB"}
"black"
Returns: 3
{"BWBWBBBWWBWWWBWB", "WBBBBBBWBWWBWWBW", "BWWBBWWBWBWWWWBW", "WBWWBBBWBWWBWBWB"}
"white"
Returns: 4
{"WWBWBBWWWBWWBBWW", "BWBWBWBWWWWBWWWW", "BBBBWWBWBWBWBWBW", "WBWBBWBBBWWWBWWW"}
"black"
Returns: 2
{"WBBWWWWWBBBBBBBW", "BWWWWBBWWWBBBWBW", "BWBWBWWBBWWBBBWB", "WWBBWBBBWWWBBBBW"}
"black"
Returns: 4
{"BBWBWBBBBWWBBWWB", "BWWBWBBWWBBBWWWW", "WWWWWWWWWWBBBWWB", "BBBWBBBWBBBBWWBB"}
"black"
Returns: 7
{"BWBWBWWBWWBBBBBW", "BBBWBBBWBBWBWWWB", "BWWWBBBBBBWBWWWW", "BWWWWBBWWWBWWWWB"}
"black"
Returns: 4
{"BWBBBWBBWBWBBWBW", "WWBWBWBBBBWBWBBB", "WWWWWBBBBBBBWBBW", "BBWWWWWBBBBWWWWW"}
"white"
Returns: 2
{"BBWWWBBWWWWBBBWB", "WWBWBBWBWBWBWWBW", "BWBWBWBWWWBBBWWB", "WWBWWBWWBWBBWWBW"}
"black"
Returns: 1
{"BWBWWBBWBBWWBBWB", "BWWBBBBBBWBWBBBB", "BBBBBBWBBBWWWWWB", "WBBWBBBBBBBWBBWW"}
"black"
Returns: 10
{"BBWWWWBWBWBWBBWW", "WBWBWWWBBBWWBBBB", "WWBWBBWBBWBBBWWB", "WWWWBBBWWBBWWWBB"}
"white"
Returns: 7
{"WBBWBWBWWWBWWWBB", "WWWWWBBBWBWWBWWW", "BBWWBBWBWBWBWWWW", "BWWWWWWWBWWBBBBB"}
"white"
Returns: 6
{"WBWWWBBBWBWWBWBB", "BWBBWWWBBBBBBBWB", "WWWBBWWWBWBBBWBB", "WBBWWBWBBBBBWWWW"}
"white"
Returns: 4
{"WBWBWWWBBWWBBBBB", "WBWBWWWBBBBBBBBB", "WBBBWBWBBWBWBBWB", "BWWWWBBBWWBBBBBB"}
"black"
Returns: 14
{"WWBBWWWBBWWBBBBW", "WBBWBBWWWWWBBBBB", "WWBWBWBBWWBBBBBW", "BBBWBWWWWBWWWWWW"}
"black"
Returns: 3
{"BBWWWWBWBBBBBBWW", "BBBBWBWWWWWBBWWW", "BBWWWWWBBBBWBWBW", "WWBBBWBWWWWWBBBB"}
"white"
Returns: 2
{"BWBWWBBWWBBBBWBB", "WBWWBBBBBBWWWWWB", "WWWWBBBWBWWBBWWW", "BBWWWBBBBWWWBBBW"}
"black"
Returns: 7
{"WBBBWWBWWBWBBBBB", "WBWBBWBBWWWWWBWW", "WWWWWBWWWBBWWBWB", "BBBWWWWWBWWWWBBW"}
"white"
Returns: 8
{"WBWWBBWWBWBWWWWW", "WWWBWBWBBBBBBWWB", "WWWWWWBBBWBBBBWB", "WBBBWBBBWBWBWBBW"}
"white"
Returns: 10
{"WWBWWWBBWBWBBWBW", "BWWBWWBWWBBBWBBW", "WBWWWWBBBWWBWBWW", "BWBWBBBWWBWWBWWW"}
"white"
Returns: 7
{"WBWBWWWBBWBBWWBW", "WBBWWWBBWBBWWWWB", "WWWWWWWWWWBWBBBB", "BWBBBBWBWWBWBBBW"}
"black"
Returns: 2
{"BWWWBBWWBWWBBWBB", "WWBBBWWWBWWWBBBW", "BBWWBWBWBWBWWBWB", "WBBWWWBBWBWWWWBW"}
"white"
Returns: 7
{"BBBWWWBBBBBWBBWB", "BWBBWWWWBWBBWWWB", "BWWWWWWWBWBWWWBB", "WWWBWBBWWBBWBWWB"}
"black"
Returns: 3
{"WWBWWWBWBWWBBBWW", "BWWWWBBBWBBWWBWB", "WWWWWWBWBWWWBBBB", "WBBWWBBWBBWWWWWW"}
"black"
Returns: 3
{"BBBWBWBBBWBBWBWB", "BBWBWBBWWWBWBWBW", "WWBWBBWWWBWBWWBB", "BBWWWWBBWBBBWBWB"}
"white"
Returns: 1
{"WWBWWBWBWBWBBBWB", "BWBBWWWWWWBBBWBW", "WBWBBBBBBWWWWBBB", "WBBBBWBBBWWWWBBW"}
"black"
Returns: 2
{"BWBWBWBBWBBWBBBW", "BBBWWBBBBWWBWBWB", "BWWWBWBBBBWBBWBW", "BBWWBWBWBWWWWWBB"}
"white"
Returns: 3
{"WWWWWBBBWBBWWWWW", "BWBBBBWWBWWBWBWW", "WWWBWWBWWWWWBBBB", "WBBWBWBBWBWBWBBB"}
"white"
Returns: 8
{"WWWBWWWBWWWWWWWW", "WWWWWWWWBBBBBBBB", "BBBWWBBWWBBWWBWB", "WBWBBBBWWBBBWWWB"}
"white"
Returns: 9
{"BWWWBWBWWWWBBWBW", "BBWWBWWWWWWBWBWB", "WBWWBWBBBBWWWWBB", "BWWBWWBBBWBWWBWB"}
"black"
Returns: 1
{"BWWWWWBWBWBWBWWW", "BWWBWBBBBBBBBWBB", "WWWWWBBWWBWBBBWB", "BWWBBBWBBWBWWBBB"}
"black"
Returns: 6
{"WWBBWWBBWBWWBWBB", "WWWWBBBBBBWBBWBB", "BWWBWBWBBWWBBWWB", "BWBBWWBWBWWBBWWW"}
"black"
Returns: 5
{"WWWBWWWWWBWBBBBW", "WBBBBWBBWWWWBWBW", "WBBWWBWWWBWWWWWW", "BWBWBWWWWWWBBWWW"}
"white"
Returns: 14
{"BBWWWBBBWWWBBWBB", "BWBBWWWWWBWBBWWW", "BBBWWBBWBWWWWBWW", "BBWBBWBBWBWBWBBB"}
"white"
Returns: 4
{"WWWBWBWWBWBBWWWW", "BWBWBBBWBBBWBBWW", "WWBBWWWBBWWWBBBB", "WBWBWBBWWWWBWWBB"}
"black"
Returns: 2
{"BBBBWWWWWBWWWBWB", "WBWBWBWBWWWWWBWW", "BBBBWWWWWWWWBWWW", "BWWBWWWBBWWWBBWB"}
"black"
Returns: 4
{"BWBBWBBWWWWWBWWW", "BWBWBBBWWWBWBBWW", "WWWWWWBBWWBBWBBW", "WWWWBBWWBWBBWBWB"}
"white"
Returns: 9
{"BWWWBBBBBWBBWBBB", "WWBBWWWBWWBWWBBW", "BWBWWBWWBWBBBBWW", "WWWBWWBBWBBWBWWB"}
"black"
Returns: 5
{"BWBBWBBWBBWBBBWB", "BWBBWWWBBWWWWWBB", "BBWBWBBWBBWWBBBB", "WBBBBBBWWBWWBWBB"}
"white"
Returns: 2
{"WWBBBBWWWWBBWWBW", "WBWWBWBWBBWBBWBW", "WWWBBBBBBBBWBBBB", "WWBBBBWBBBBWWWWB"}
"black"
Returns: 4
{"BWWBWWBWWBBWBBBB", "WBBWWWBBBBBWWWBB", "WWBBWBWBBWBBWBBW", "BBBBWBBBWWBWWBBB"}
"white"
Returns: 1
{"BWBWBBWWBBBBWBBB", "BWWWBBBWWWWWBBWB", "BBBBBBBBWBWBBBWW", "BBWBWWWWWBWBBBWB"}
"white"
Returns: 3
{"WBWWWWBWWWWBWBWB", "BWBWBWWBWBBWWBBB", "WWBWWBBWBBBWWWWW", "BBBBBWBWBBBWWWWW"}
"black"
Returns: 4
{"WBBWWWBWBBWWBWBW", "WWBBWBBBWBBWWBWB", "BWBWBWBWBWBWWBBW", "BBBWWWBWBWWWBWBB"}
"black"
Returns: 6
{ "BBBBBWWWBWWWBWWW", "BWWWWWWWWWWWWWWW", "BWWWWWWWWWWWWWWW", "BWWWWWWWWWWWWWWW" }
"black"
Returns: 3
{ "WWWWWWWWWWWWWWWW", "WWWWWWWWWWWWWWWW", "WWWWWWWWWWWWWWWW", "WWWWWWWWWWWWWWWW" }
"white"
Returns: 76