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
Автор поста оценил этот комментарий

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

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

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

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

И массив с картами может быть пуст

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

Пока все

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

И выграшные комбинации

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

Так тут деревом ждут

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

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

раскрыть ветку (3)
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.


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

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

Тут вижу пустые возможные поля, список и. Что есть, а еще дероыво хотят

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

Да тут по идеи минус

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

Тут можно один массив иметь, но все же вопрос что апи дает

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества

Недвижимость и ремонт

Теги

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

Сообщества