Собрался в этом году поиграть-таки в Advent of Code (сомневаюсь, конечно, что до католического Рождества уложусь, но до НГ — шансы есть).
Чем он интересен — так это подходом. Собственно, сам код там и не нужен, требуется только ответ. Никому не важно, насколько эффективным, красивым и т.д. было решение, позволившее этот ответ получить.
Хоть на бумажке делай, хоть в электронных таблицах, хоть прямо в консоли браузера. Есть только задачка и окошка для ввода ответа.
Я решил делать в консоли jshell
преимущественно. До тех пор, пока это получается удобно и быстро.
Вот минимальная обвязка, чтобы выкачивать условия задачи с сайта и отправлять на обработку. Работает из jshell
, секрет для куков — залогиниться в AoC и скопировать из консоли браузера.
HttpCookie cookie = new HttpCookie("session", "secret-from-aoc-site-cookies");
cookie.setSecure(true);
cookie.setHttpOnly(true);
cookie.setDomain(".adventofcode.com");
cookie.setPath("/");
cookie.setVersion(0);
cookie.setMaxAge(Instant.parse("2032-12-01T10:45:41Z").getEpochSecond());
CookieManager manager = new CookieManager();
manager.getCookieStore().add(null, cookie);
HttpClient client = HttpClient.newBuilder().cookieHandler(manager).build();
HttpRequest.Builder request = HttpRequest.newBuilder().method("GET", HttpRequest.BodyPublishers.noBody());
try {
day1("https://adventofcode.com/2022/day/1/input");
} catch (Exception e) {
e.printStackTrace();
}
Дальше стану выкладывать решения по дням в том или ином виде, а весь список можно будет найти по тегу adventofcode-2022.
Присоединяйтесь!