Evgeniy
Evgeniy
Я обычным двумерным массивом доски хранил
Иван
Alex Azarov
Evgeniy
Aleksandr
Aleksandr
по итогу показалось что дольше из инпута в массивы переводил числа, чем алгоритм писал
Viktor
У меня, если честно, получилось полотно кода, для 4 дня.
Viktor
то есть само решение вроде норм, компактное, но реализация всех функций — там полотно.
Viktor
печаль
Viktor
скоро на полный рабочий день придётся решать адвент 😂
Evgeniy
Evgeniy
Captcha bot
Ryan Bogaerts, код неверный, обратись к админу.
Captcha bot
Stijn Vermeiren, код неверный, обратись к админу.
Sergei
Lynn «Кофеман»
А я хранил каждую строчку и столбец в отдельном Set. 😀
Lynn «Кофеман»
Тогда проверка выигрыша тривиальна — пустой set 😀
Evgeniy
Ага, так будет быстрее.
Lynn «Кофеман»
Но в целом я не очень заморачивался на оптимизации 😀
Ilia
я как увидел инпут так тоже решил забить на оптимизацию, думал через две хэшмапы делать, а тут все проще
Evgeniy
https://www.youtube.com/watch?v=JbYS3_zXN_A
Ilia
Ilia
я чет во второй части сегодня дико затупил с одним условие и полчаса дебажил в итоге :D
Evgeniy
Ilia
в одном чатике подсмотрел идею решения второй задачи за два прохода по доскам. это даже немного гениально вышло, написал: получил ±1.4ms против первого решения в 17-20ms
Ilia
для каждой доски надо найти ход, на котором она выиграет, ну а дальше дело техники )
Evgeniy
V
пока вы тут уже 4-й день решили, я радуюсь, что написал довольно элегантное решение на го вчерашнего дня ) https://github.com/1e9y/adventofcode/blob/main/2021/day03/day03.go#L70-L88
Alex Azarov
А я начал прошлые года решать🙃
Ilia
V
давайте потом с 15-го начнем
V
там есть задачка на майнинг криптовалюты)
Alex Azarov
Ilia
Емнип на 87 ходе заканчивается вторая часть
Sergei
Проснулся, прочитал условие, ничего не понял, позавтракал, прочитал, понял, пойду погуляю, пусть фоном процессится)
Andrey
Я вроде в фоне подумал и кажется, что не слишком сложно. Осталось написать и ужаснуться второй части
Ilia
Условия кривые
Ilia
Написано, что точки в формате x,y, а на доске нарисовано в формате y,x
Andrey
Вчера я сходу написал решение для первой, а во второй оказалось, что совпадения по колонкам тоже надо проверять :/
Ilia
Первая часть по идее лёгкая, я в тексте подсказку рассмотрел )
Ilia
а со второй я с кривыми условиями разобраться не могу, ответ не принимает блин))
Alexandr
этот advent я решаю на питоне и это такое облегчение после JS, просто пишешь логику без миллиарда вспомогательных функций)
а какое кривое условие во втором? вроде просто по диагонали посчитать?
Ilia
Написано, что точки в формате x,y, а на доске нарисовано в формате y,x
Ilia
и у меня с этим чет затык какой-то, в голове не могу уложить
Alexandr
так вроде когда распарсил, типо
p1, p2 = l.split(' -> ')
x1, y1 = map(int, p1.split(','))
x2, y2 = map(int, p2.split(','))
то уже всё равно, в названиях переменных есть x, y
Ilia
так вроде когда распарсил, типо
p1, p2 = l.split(' -> ')
x1, y1 = map(int, p1.split(','))
x2, y2 = map(int, p2.split(','))
то уже всё равно, в названиях переменных есть x, y
я с диагоналями и направлениями закопался и не мог понять почему не работает, написал другое условие через дельту и сработало )
Alexandr
Ilia
переписал вообще полностью все решение через дельту, вышло 4 строки(плюс хэлпер). так даже не интересно))
Ilia
я такие задачи любил в прошлом году, когда по сути решение можно написать одно и то же, разница будет в каком-нибудь одном условии, а то и вообще можно сразу написать решение второй задачи и оно сработает сразу и там и там )
Aleksandr
Чатик, можно немного оффтопа от алгосиков. Кто нибудь может чего посоветовать, если у меня есть скрипт, который посылает пару http запросов и получает ответ, который надо сохранить, и я хочу чтобы этот скрипт разок в час запускался. Что для такого сервиса нужно? Нужно покупать виртуалку в клауде и крон джобу там устанавливать? Или чего есть попроще? Аля gh pages только чуть помощнее:) заранее спасибо за любые советы!
Ilia
А где эти данные сохранять хочется?
Ilia
По сути этот скрипт хоть в браузере можно запустить ))
Ilia
Sergei
Опять в одномерный засунул диаграмму, мне почему-то это так нравится, получать индекс через x * width + y
Sergei
Правда то, что координаты не отсортированы и первая координата может быть больше, чем вторая добавило простыню условий)
Ilia
Ilia
Я тупо в сет ‘x-y’ запихнул и все
Sergei
Так там до 1000 значения
Ilia
Lynn «Кофеман»
Roman
Aleksandr
Aleksandr
Alex Azarov
https://adventofcode.com/2015/day/4
Давайте кто быстрее намайнит биткоинов)
Alex Azarov
для второй задачи
у меня на одном потоке: 44.61s
на нескольких: 74.29s
Alex Azarov
Alex Azarov
а, /usr/bin/time оказывается суммирует время на всех потоках, поэтому мультитредовая имплементация всё-таки быстрее – 10 секунд
Alex Azarov
соптимизировал до 1 секунды
Alex Azarov
из них 426мс работа dlyd, плюс у меня всё ещё строки создаются где не надо, так что думаю на сишке можно в 100мс вложиться