{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

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.

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

0
11 комментариев
Написать комментарий...
Sergey Ilyin

Первый мой год в AoC и вот что могу сказать: первые 6 дней - too easy, 7 день с обходом дерева - уже не тривиально, 8 день с выбором самого высокого дерева - чуть проще, чем день 7. А вот день 9 - фактически, "змейка". Наверное, надо решать через ООП. В общем, хороший повод подтянуть пробелы как в программировании, так и в алгоритмах. Кайф, короче. В общем, айда помогать гномам!

Вопрос автору: а в чем смысл стучаться через АПИ? Просто чтобы не вбивать ответ руками?

Ответить
Развернуть ветку
dimio
Автор

Пока только до пятого успел дойти, поздно начал. Может, на выходных время позволит догнать календарь. Ну и решения повыкладывать.
Нет, почему, ответы руками ввожу. Это вытягивание условий. Там же длинные портянки, всё равно их считывать откуда-то удобней - так почему бы напрямую с сайта не подгружать.

Ответить
Развернуть ветку
Sergey Ilyin

Я портянки просто из браузера сохраняю. Но да, стоит разобраться с выгрузкой )

Как ваш прогресс? День 10 очень интересный )

Ответить
Развернуть ветку
dimio
Автор

Вот только седьмой день преодолел. И явно хватит мне на сегодня )
А вы уже с десятым разобрались? Завидую по-хорошему! По описанию выглядит любопытно, что есть, то есть.

Ответить
Развернуть ветку
Sergey Ilyin

Начиная с восьмого кайфанете ))

Ответить
Развернуть ветку
dimio
Автор

Забежал вперёд, решил 11 день сегодня. А 8 и 9 остались "на сладкое" )

Ответить
Развернуть ветку
Sergey Ilyin

14 уже решили?

Ответить
Развернуть ветку
dimio
Автор

Неее, 3 вечера на работе зависал - как остановился на половине 9, так и висит пока. Теперь уже просто догнать бы :) Задачки пошли длинные, если рука не набита на алгосах.

Ответить
Развернуть ветку
Sergey Ilyin

Да. Из быстро решают те, кто прошлые АоС проходил. Задача 14 дня - прям ух. Да и 15 с первого взгляда - тоже. Но я ее еще пока решать не садился.

Ответить
Развернуть ветку
Sergey Ilyin

1 задача 15 дня - простая. 2 - сложная, если придумывать алгоритм, просто так «перерубить герцами» - не очень спортивно

Ответить
Развернуть ветку
dimio
Автор

Эх, я пока только за десятый вот хочу приняться, сколько успею за вечер. Да, если повезёт со временем, - на выходных штуки три попробую разгадать.
Отстаю драматично, эх :)

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
8 комментариев
Раскрывать всегда