Advent of Code 2022

Собрался в этом году поиграть-таки в Advent of Code (сомневаюсь, конечно, что до католического Рождества уложусь, но до НГ — шансы есть).

Чем он интересен — так это подходом. Собственно, сам код там и не нужен, требуется только ответ. Никому не важно, насколько эффективным, красивым и т. д. было решение, позволившее этот ответ получить.

Хоть на бумажке делай, хоть в электронных таблицах, хоть прямо в консоли браузера. Есть только задачка и окошко для ввода ответа.

Я решил делать в консоли jshell преимущественно. До тех пор, пока это получается удобно и быстро.

Вот минимальная обвязка, чтобы выкачивать условия задачи с сайта и отправлять на обработку. Работает из jshell, секрет для куков — залогиниться в AoC и скопировать из консоли браузера.

HttpCookie cookie = new HttpCookie("session", "secret"); 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.

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

22
4 комментария