Advent of Code 2022

Собрался в этом году поиграть-таки в 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.

Присоединяйтесь!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *