2

Advent of Code 2023: Day 4: Scratchcards

Серия Advent of Code

Про задачу четвертого дня сказать особенно нечего. По условию – проще третей. По парсингу ввода – проще второй. Решается быстро.

Сразу прикинул, что с использованием примитивов или оборачиванием в типы из стандартной библиотеки – будет портяночно. Поэтому – отдельный класс с логикой:

<a href="https://pikabu.ru/story/advent_of_code_2023_day_4_scratchcards_10940489?u=https%3A%2F%2Fdimio.github.io%2Fdopaste%2F%3Fl%3Djava%23XQAAAQCwCAAAAAAAAAAX4HyIbzm%2FILQXejs0%2BpjEkM1O3vUmgafcspCHlYF0CGMN87UuPGqHph658%2FgH7eCljoLMVObmopBqMVRx6aYZSzYtEPpRoujOoZDq4REpPfuqxguzz5wmxZ0KIRQcKbtNcSAmivHekJ1Oq1hF8Rwyj2xKlbNfo8KvHh1kc%2BziPk2kUm4bpkzpXvX0AbW%2FpBk2T2a2pM4ZazSppyPkjtv9O32pcRWOl%2Beaf334%2FHv7hzjIylFNq%2FQ%2F3K9FzBX16MIE%2FxJxBJlJvHdyK%2BAzRhakwjNAvsB53%2FqjkeCLtBz%2BwR7FctROhv892JUVAx%2FN8SaEhV%2BtZLUQzD0K%2F4pwVlLzLoLJ3iCLhtOO5kSDDDS1Lulbny5uDBE%2FAoGV95K8eMNK0WcpZiVDOop3LrjzFV8m7PrnK3dgO%2FimHkDVH5%2FS6ZV7IeLRbAQybAanQtQ9apfrI7dZQaA%2B5Qdd%2BQm76Wqo9%2FjA70A45WchQzVziJlEQVXPM0gpci9GyRymlP%2By5NeJ6SdITTOd06%2BvEnJ97vfyMCorR2Yt9240xzNX4tgPoDdGnnIDgsC%2FquN2Qcn0QnrIO%2B618ZoxIqcYhZJ6aW9dWnkXH%2Bc3uHNmHc7VRycmFnNzj%2BDoMlXZSCH6A8cbWwHcnc%2BM32r0GQ3%2BiBwvn4MqHlX0Ee3J5tybGeN0EPfWRDAxzUw5e47DO1%2BCsTsJ%2Bq4vyJ1WnfcBpyp1SCXPG4HgRy1zh5xt9bEseVUrJNklXK%2BonmLQrYD73xMnb4AJLzbKEVbdOy%2B9pCzTgZuTVXlXAQJy5qDPJShA4Oo09xdRffpeOPnRG1tgPewo4Vc5OATrcA6gW4YokLGPkqUGgVUBdA4NAp%2F%2B3Vl33H4CrJGMwdYu8isQLLbVxB3AkJkFZi3rvUbTJx8zVBrD%2BEIb%2FdmBMbhn7ectKTSbU4Is6h8dh9ieEFHS1RvIctyNREmex1PsViXhA4eU4lH6zH79ZA1js5neTz4FK2Dlhaob3ZXCmuh1aPj%2FlQHib232dStO%2B9yVcEyJYMu8vFqckr4LUSWBKvBWz9S5%2FBG3%2B0oTCdpe355iDYq4zYD9D1ixzlk1q5AckTrM00eLkspzwsgDmSwt9Tu5WveKicKUDU%2FJgsFHY1ZdXkfeZpAJDogp%2BbIVkfQZj%2FpHrdI7FF8Vt3LlxzBnQ2IAhbe3RlJuLcqAG52XaZgA6qIoe3aYMrZvKWzbZXaONJCMwA5867LS0FtysKcniDxvNlLThmk8dNFeKJ%2BkFVpHyuEgXNRAVYpVe2Lm0N5g5RdU3uSETms9AdFclj0tt362aV0YE%2Ftx4LX6rFt3OKN0p1vW%2F%2FbdQYo%3D&t=%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%BC&h=79f1629bff6e08c1a536daca950b6b9af450cc4c" title="https://dimio.github.io/dopaste/?l=java#XQAAAQCwCAAAAAAAAAAX4HyIbzm/ILQXejs0+pjEkM1O3vUmgafcspCHlYF0..." target="_blank" rel="nofollow noopener">Решение текстом</a>

Решение текстом

И короткое решение с его помощью:

<a href="https://pikabu.ru/story/advent_of_code_2023_day_4_scratchcards_10940489?u=https%3A%2F%2Fdimio.github.io%2Fdopaste%2F%3Fl%3Djava%23XQAAAQCwCAAAAAAAAAAX4HyIbzm%2FILQXejs0%2BpjEkM1O3vUmgafcspCHlYF0CGMN87UuPGqHph658%2FgH7eCljoLMVObmopBqMVRx6aYZSzYtEPpRoujOoZDq4REpPfuqxguzz5wmxZ0KIRQcKbtNcSAmivHekJ1Oq1hF8Rwyj2xKlbNfo8KvHh1kc%2BziPk2kUm4bpkzpXvX0AbW%2FpBk2T2a2pM4ZazSppyPkjtv9O32pcRWOl%2Beaf334%2FHv7hzjIylFNq%2FQ%2F3K9FzBX16MIE%2FxJxBJlJvHdyK%2BAzRhakwjNAvsB53%2FqjkeCLtBz%2BwR7FctROhv892JUVAx%2FN8SaEhV%2BtZLUQzD0K%2F4pwVlLzLoLJ3iCLhtOO5kSDDDS1Lulbny5uDBE%2FAoGV95K8eMNK0WcpZiVDOop3LrjzFV8m7PrnK3dgO%2FimHkDVH5%2FS6ZV7IeLRbAQybAanQtQ9apfrI7dZQaA%2B5Qdd%2BQm76Wqo9%2FjA70A45WchQzVziJlEQVXPM0gpci9GyRymlP%2By5NeJ6SdITTOd06%2BvEnJ97vfyMCorR2Yt9240xzNX4tgPoDdGnnIDgsC%2FquN2Qcn0QnrIO%2B618ZoxIqcYhZJ6aW9dWnkXH%2Bc3uHNmHc7VRycmFnNzj%2BDoMlXZSCH6A8cbWwHcnc%2BM32r0GQ3%2BiBwvn4MqHlX0Ee3J5tybGeN0EPfWRDAxzUw5e47DO1%2BCsTsJ%2Bq4vyJ1WnfcBpyp1SCXPG4HgRy1zh5xt9bEseVUrJNklXK%2BonmLQrYD73xMnb4AJLzbKEVbdOy%2B9pCzTgZuTVXlXAQJy5qDPJShA4Oo09xdRffpeOPnRG1tgPewo4Vc5OATrcA6gW4YokLGPkqUGgVUBdA4NAp%2F%2B3Vl33H4CrJGMwdYu8isQLLbVxB3AkJkFZi3rvUbTJx8zVBrD%2BEIb%2FdmBMbhn7ectKTSbU4Is6h8dh9ieEFHS1RvIctyNREmex1PsViXhA4eU4lH6zH79ZA1js5neTz4FK2Dlhaob3ZXCmuh1aPj%2FlQHib232dStO%2B9yVcEyJYMu8vFqckr4LUSWBKvBWz9S5%2FBG3%2B0oTCdpe355iDYq4zYD9D1ixzlk1q5AckTrM00eLkspzwsgDmSwt9Tu5WveKicKUDU%2FJgsFHY1ZdXkfeZpAJDogp%2BbIVkfQZj%2FpHrdI7FF8Vt3LlxzBnQ2IAhbe3RlJuLcqAG52XaZgA6qIoe3aYMrZvKWzbZXaONJCMwA5867LS0FtysKcniDxvNlLThmk8dNFeKJ%2BkFVpHyuEgXNRAVYpVe2Lm0N5g5RdU3uSETms9AdFclj0tt362aV0YE%2Ftx4LX6rFt3OKN0p1vW%2F%2FbdQYo%3D&t=%D0%A0%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%82%D0%B5%D0%BA%D1%81%D1%82%D0%BE%D0%BC&h=79f1629bff6e08c1a536daca950b6b9af450cc4c" title="https://dimio.github.io/dopaste/?l=java#XQAAAQCwCAAAAAAAAAAX4HyIbzm/ILQXejs0+pjEkM1O3vUmgafcspCHlYF0..." target="_blank" rel="nofollow noopener">Решение текстом</a>

Решение текстом

0
Автор поста оценил этот комментарий

А так ты кто в плане пазработки?

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

У меня в профиле написано ))

Иллюстрация к комментарию
показать ответы
1
Автор поста оценил этот комментарий

Ну можешь выкладывать тут задания, присоеденюсь

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Выкладываю: Advent of Code


И в прошлом году: Advent of Code 2022


Но я медленно продвигаюсь - времени свободного не хватает. В прошлом году каждый день по штуке делал.

показать ответы
0
Автор поста оценил этот комментарий

Если помогут буду признателен ответу

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Эта задача решена.
Но впереди ещё 21 штука - присоединяйся, если интересно )

показать ответы
0
Автор поста оценил этот комментарий

Ну я так указал что не так на мой взгляд, не будьте придирчивы



Да жоский, но и на тимлида с улицы не берут

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Спасибо за замечания :)

показать ответы
0
Автор поста оценил этот комментарий

Это Se?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Да. Можно, конечно, подключить имплементации каких-то спек Java/Jakarta EE. Но тут они ни к чему. Да и не хочется в целом за пределы stdlib выходить при решении в консоли.

показать ответы
0
Автор поста оценил этот комментарий

Они и на оптимизацую смотрят

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Для этого (оптимизации) - LeetCode, Hackerrank и подобные.

А AoC я решаю для отдыха.

показать ответы
0
Автор поста оценил этот комментарий

Как и предпологал Java

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Тег на посте стоит Java ;)

На 21 делаю.

показать ответы
0
Автор поста оценил этот комментарий

И да понимаю что ссылки льшь будут, вопрос как собираешь, смысла их так хранить нету, у тебя вложенный массив почем зря получился, но опять вопрос апи, может там дерево и тогда место имеет право быть

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Тут нет метрик (в advent of code) - по скорости, ресурсам и т.п.


Тут просто надо получить ответ, любым способом (народ в Гугл таблицах решает, в sed / awk и ещё кучей разных способов).


Поэтому я стараюсь соблюсти баланс между:

а) моими трудозатратами (есть по паре часов на задачку, несколько вечеров в неделю)

б) читаемостью (а я временами из прошлых задач копипащу что-то в новые - и не хочу долго вспоминать, что я там наворотил для "экономии памяти")

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


По пункту в) - если что-то такое ещё реально вспомнить быстро и понять (https://dimio.org/advent-of-code-2022-day-19.html), то вот такое - я бы второй раз читать не хотел, после того, как написал (https://dimio.org/advent-of-code-2022-day-14.html или https://dimio.org/advent-of-code-2022-day-8.html)


Возвращаясь к вложенному массиву, с учётом вышесказанного - мне проще и короче в одном стриме его сохранить, развернуть все вложенные в общий стрим и сделать count.


Не могу утверждать, что это идеальный вариант :)

показать ответы
0
Автор поста оценил этот комментарий

А если честно без условия задачи nextCards смущает, смысл есть ли в том что массивы идут по убыванию объема? Вопрос лишь к апи

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Согласен, лучше к посту ссылку цеплять: https://adventofcode.com/2023/day/4

показать ответы
0
Автор поста оценил этот комментарий

Чет мне кажется опциональные типы ты забыл

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Позор! (мне)

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества