Skip to content

Instantly share code, notes, and snippets.

View paulhoadley's full-sized avatar

Paul Hoadley paulhoadley

View GitHub Profile
@paulhoadley
paulhoadley / Day2.java
Created January 2, 2019 09:20
Advent of Code 2018: Day 2 part 2
package net.logicsquad.advent.y2018;
import java.util.List;
public class Day2 extends Day {
private static final String INPUT_FILENAME = "etc/2018/day2.input";
public static void main(String[] args) {
List<String> lines = linesForFilename(INPUT_FILENAME);
for (int i = 0; i < lines.size(); i++) {
@paulhoadley
paulhoadley / Day2.java
Created January 2, 2019 09:02
Advent of Code 2018: Day 2 part 1
package net.logicsquad.advent.y2018;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Day2 extends Day {
private static final String INPUT_FILENAME = "etc/2018/day2.input";
public static void main(String[] args) {
@paulhoadley
paulhoadley / Day1.java
Last active January 1, 2019 04:24
Advent of Code 2018: Day 1
package net.logicsquad.advent.y2018;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

Preparing

To prepare, turn off automatic builds in Eclipse (otherwise, Eclipse is going to be really, really "helpful" by creating folders, modifying .classpath etc.). Keep automatic builds off until you've at least finished step 2 (changing your configuration files.

Once you've changed the configuration files, close the project and open it again, then turn on the Eclipse builds again.

1. Creating folders and moving stuff around

Here are the modifications you have to do to your project's layout, expressed in bash (as if your working directory is your project's root).

$ git diff Sources/net/logicsquad/wipe/model/Invitation.java
diff --git a/Sources/net/logicsquad/wipe/model/Invitation.java b/Sources/net/logicsquad/wipe/model/Invitation.java
index 92e6484..b1b503c 100644
--- a/Sources/net/logicsquad/wipe/model/Invitation.java
+++ b/Sources/net/logicsquad/wipe/model/Invitation.java
@@ -243,12 +243,9 @@ public class Invitation extends _Invitation {
NSArray<Invitation> result = Invitation.fetchInvitations(
editingContext(), Invitation.EMAIL.likeInsensitive(email()),
null);
- for (Invitation i : result) {
package net.logicsquad.advent;
public class Day20 {
private static final int MIN_SIZE = 34000000;
public static void main(String[] args) {
int house = 1;
while (true) {
int total = 0;
for (int elf = 1; elf <= house; elf++) {
package net.logicsquad.advent;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
package net.logicsquad.advent;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
public class Day18 {
public static void main(String[] args) throws IOException {
package net.logicsquad.advent;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import net.logicsquad.advent.utils.Combination;
package net.logicsquad.advent.utils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
public class Combination<T> implements Iterable<List<T>> {
private Iterator<List<T>> iterator;
private final List<T> source;