Skip to content

Commit 56b46c9

Browse files
committed
fixMediumPizzaSlicing. Fix big pizza parsing
1 parent 40c378c commit 56b46c9

File tree

3 files changed

+14
-11
lines changed

3 files changed

+14
-11
lines changed

src/main/java/com/google/hashcode/App.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ public class App {
2424
public static void main(String[] args) throws IOException {
2525
//slicePizza(EXAMPLE_INPUT_FILE_PATH, OUTPUT_DATA_SET_EXAMPLE_TXT);
2626
//slicePizza(SMALL_INPUT_FILE_PATH, OUTPUT_DATA_SET_SMALL_TXT);
27-
slicePizza(MEDIUM_INPUT_FILE_PATH, OUTPUT_DATA_SET_MEDIUM_TXT);
27+
// slicePizza(MEDIUM_INPUT_FILE_PATH, OUTPUT_DATA_SET_MEDIUM_TXT);
2828
//TODO troubles to input big files, possible exciting String max size
29-
//slicePizza(BIG_INPUT_FILE_PATH, OUTPUT_DATA_SET_BIG_TXT);
29+
slicePizza(BIG_INPUT_FILE_PATH, OUTPUT_DATA_SET_BIG_TXT);
3030
}
3131

3232
public static void slicePizza(String inputFile, String outputFile) throws IOException {

src/main/java/com/google/hashcode/entity/Pizza.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
public class Pizza {
1414

1515
private final File input;
16-
private final List<Cell> cells;
1716
private final SliceInstruction sliceInstruction;
17+
private List<Cell> cells;
1818

1919
public Pizza(File input, List<Cell> cells, SliceInstruction sliceInstruction) {
2020
this.input = input;
@@ -30,6 +30,10 @@ public List<Cell> getCells() {
3030
return cells;
3131
}
3232

33+
public void setCells(List<Cell> cells) {
34+
this.cells = cells;
35+
}
36+
3337
/**
3438
* Coordinates are like in a 2D array
3539
*

src/main/java/com/google/hashcode/utils/DFSMethods.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,12 +141,16 @@ public static Step selectStep(Map<Slice, List<Step>> steps) {
141141
* @return slices that are start positions for future slicing
142142
*/
143143
public static List<Slice> cutAllStartPositions(Pizza pizza) {
144+
Profiler profiler = new Profiler();
145+
System.out.println("cutAllStartPosition start");
144146
List<Cell> mushrooms = pizza.getCells().stream()
145147
.filter(cell -> cell.ingredient.equals(Ingredient.MUSHROOM))
146148
.collect(Collectors.toList());
149+
System.out.println("m size = " + mushrooms.size());
147150
List<Cell> tomatoes = pizza.getCells().stream()
148151
.filter(cell -> cell.ingredient.equals(Ingredient.TOMATO))
149152
.collect(Collectors.toList());
153+
System.out.println("t size = " + tomatoes.size());
150154
LOGGER.info("cutAllStartPositions for pizza: "
151155
+ "\n" + pizza
152156
+ "\nmushrooms number: " + mushrooms.size()
@@ -156,21 +160,16 @@ public static List<Slice> cutAllStartPositions(Pizza pizza) {
156160
startPositions = tomatoes.stream()
157161
.map(Slice::new)
158162
.collect(Collectors.toList());
159-
List<Cell> cellsToRemove = startPositions.stream()
160-
.flatMap(slice -> slice.cells.stream())
161-
.collect(Collectors.toList());
162-
pizza.getCells().removeAll(cellsToRemove);
163+
pizza.setCells(mushrooms);
163164
} else {
164165
startPositions = mushrooms.stream()
165166
.map(Slice::new)
166167
.collect(Collectors.toList());
167-
List<Cell> cellsToRemove = startPositions.stream()
168-
.flatMap(slice -> slice.cells.stream())
169-
.collect(Collectors.toList());
170-
pizza.getCells().removeAll(cellsToRemove);
168+
pizza.setCells(tomatoes);
171169
}
172170
LOGGER.info("pizza without start positions:"
173171
+ "\n" + pizza);
172+
System.out.println(profiler.measure("cut All ss ends in "));
174173
return startPositions;
175174
}
176175

0 commit comments

Comments
 (0)