Владъ
короче, пока не сильно сложнее на выходных вышла задача)
Evgeniy
без dfs конечно
Ничего не знаю, я островами решил 😁
Vitaly
Кстати, если вводишь неверный ответ на сайте, он говорит - слишком мал ответ или слишком велик. Получается, можно бинпоиском попыток за 16-20 ответ угадывать, не решая задачу?)
Viktor
Ничего не знаю, я островами решил 😁
да я что-то подумал это лишнее с учетом того, что бегать надо только по горизонтали, нет же такого, что число змейкой идет 😃
Mikhail
Сегодняшняя задача острова на максималках 😃
что за задача про острова, можешь дать ссылку?
Alex-k
https://leetcode.com/problems/number-of-islands/
но тут же не острова а символы и числа, не подходит
Alex-k
блин у меня какой-то баг, который не воспроизводится на тестовом инпуте... так лень раскручивать
Viktor
но тут же не острова а символы и числа, не подходит
Там пару принципов оттуда я использовал. Так конечно задачи один-в-один не матчатся
Viktor
блин у меня какой-то баг, который не воспроизводится на тестовом инпуте... так лень раскручивать
Пробовал соединить пару передач и чисел в цепочку? У меня такой был баг (в тестовом инпуте его действительно нет)
Viktor
сори, это когда как?
Пример на измененном тестовом инпуте: 467..114.. ...*...... ..35..633. ......*... 617*617... .....+.58. ..592..... ......755. ...$.*.... .664.598.. 617 * 617 * 633 - цепочка
Владъ
Пример на измененном тестовом инпуте: 467..114.. ...*...... ..35..633. ......*... 617*617... .....+.58. ..592..... ......755. ...$.*.... .664.598.. 617 * 617 * 633 - цепочка
Мне кажется это уже какая-то проф деформация) усложнять задачу без явных на то причин)
Alex-k
я боюсь что ты щас мне за вторую часть рассказываешь, никаких цепочек в первой части нет
Viktor
Сорри я не понял
Viktor
Я сразу подумал про вторую часть потому что в первой части у меня бага не было. Отличный пример когнитивного искажения
Viktor
Ведь я не спросил в какой части баг у тебя 😃
Alex-k
Сорри я не понял
Да ничего , немного наперед буду знать
Владъ
Я сразу подумал про вторую часть потому что в первой части у меня бага не было. Отличный пример когнитивного искажения
Такой баг возможен только через dfs с островами) Если просто по условию решать и не усложнять, то такого не будет 😉
Владъ
Надо посмотреть нормальные решения. Кидай свое 👍
Не дома, но могу коротко на словах 1. Искать числа 2.1. Искать символы вокруг. При успехе складывать в ответ 2.2 Искать * вокруг. При успехе складывать в хэшмапу, где ключ это адрес *, а значение - массив чисел. В конце фильтруем, перемножаем, складываем
Владъ
По сути, это все те же переборы строк что и в первых двух
Владъ
Надо посмотреть нормальные решения. Кидай свое 👍
```javascript const input = schematic.split("\n"); const n = input.length const m = input[0].length const gears = {} for (let i = 0; i < n; i++) { const numRegExp = /\d+/g; const currLine = input[i]; let match = numRegExp.exec(currLine) while (match) { const { 0: num, index } = match const startIndex = Math.max(index - 1, 0); const endIndex = Math.min(index + 1 + num.length, m); for (let j = i - 1; j <= i + 1; j++) { for (let k = startIndex; k < endIndex; k++) { if (input[j]?.[k] === '*') { const key = `${j}-${k}` gears[key] = (gears[key] ?? []).concat(+num) } } } match = numRegExp.exec(currLine) } } console.log( Object.values(gears) .filter(x => x.length == 2) .map(x => x.reduce((a, b) => a * b)) .reduce((a, b) => a + b) );```
Владъ
спойлер ломает форматирование 🤪
Владъ
кто не знает, но в RegExp.exec(str) есть удобная фича – он запонимает где остановился и при повторном вызове продолжает поиск дальше по строке
Ilia
блин у меня какой-то баг, который не воспроизводится на тестовом инпуте... так лень раскручивать
моя нелюбимая часть в адвенте, когда написал алгоритм и уверен, что вроде правильно, а он не работает :D
Ilia
Пример на измененном тестовом инпуте: 467..114.. ...*...... ..35..633. ......*... 617*617... .....+.58. ..592..... ......755. ...$.*.... .664.598.. 617 * 617 * 633 - цепочка
там же в условии явно сказано, что только между двумя числами, значит это не цепочка, а два отдельных действия будет
Stas
Alex-k
Супер хорошо
Yeti
что-то у меня 25 минут на вторую звездочку сегодня ушло =((
Viktor
там же в условии явно сказано, что только между двумя числами, значит это не цепочка, а два отдельных действия будет
Пары чисел относятся каждый к своей звездочке (одно и тоже число входит в обе пары). Если числа затирать и потом не возвращать на место (а-ля острова), то будет баг.
Viktor
В идеале острова тоже не надо зачищать)) исходные данные лучше не менять)
Если не зачищать во время обхода, то одно и то же число можно посчитать дважды. Лучше смотреть решение у @wuce6 😃
Viktor
В идеале острова тоже не надо зачищать)) исходные данные лучше не менять)
Правило про исходные данные в этом случае мне кажется неприменимо. Мы ж не в проде, можешь зачищать все что хочешь 😅
Viktor
Главное что б работало.
Viktor
Но с этим и есть проблема, типа если не зачищать получишь один баг, если вовремя не возвращать на место — получишь другой. Это хороший показатель, что в целом подход кривой
Viktor
Тут я согласен
Yeti
А задания с каждым днём будут проще же ? да ?
Vitaly
Ну пока 3 из 3 задач на технику - аккуратно парси строчки, не запутайся с индексами в проверках и задача решена... Интересно, как будет дальше
Mikhail
бывают задачи уровня хард на литкоде? я первый год решают
Mikhail
advent of code считает сколько раз ты неправильно засабмитил?
Mikhail
Нет
как тогда вычисляется рейтинг в лидерборде?
Evgeniy
А задания с каждым днём будут проще же ? да ?
Первые десять дней обычно несложные
Evgeniy
Или вот https://adventofcode.com/2022/day/19
Evgeniy
Во, ещё https://adventofcode.com/2022/day/16
Mikhail
демотивирует уже
Evgeniy
Много интересных задач, в общем
Evgeniy
демотивирует уже
Большинство задач вполне решабельны. Таких сложных единицы
Evgeniy
Опять же, все зависит от навыка решения. Я кинул те, с которыми мне было сложно. По первой ссылке, например, вторую часть я так и не доделал
Ilia
Во, ещё https://adventofcode.com/2022/day/16
Ох, в прошлом году эта задача меня прямо демотивировала))
Ilia
Я на нее 3 часа потратил и так и не решил, после этого чет отвалился в прошлом году я))
Evgeniy
Даа... Мне еще с узлами запомнилась
Ой, верёвками https://adventofcode.com/2022/day/9
Evgeniy
По статистике >24h
Evgeniy
Там какое-то хитрое дп было
Evgeniy
С эвристиками пришлось играться, и потребляемую память урезать. Иначе всё выжирало. Было весело...
Alex Azarov
По времени
нашёл лидерборд этого чатика то ли за 2022 то ли даже за 2021
Alex Azarov
Alex Azarov
все ушли из айти что ль?)
Ilia
все ушли из айти что ль?)
новый создали же))
Ilia
новый создали же))
в новом активных 40+ человек
Alex Azarov
новый создали же))
только если аккаунт в гитхабе новый, эти лидерборды не зависят от года
Alex Azarov
то есть люди которые решали в 2021, в этом году не решают уже
Alex Azarov
вот мне интересно почему
Ilia
только если аккаунт в гитхабе новый, эти лидерборды не зависят от года
ну не все к старому присоединяются, я из старых удалился даже
Alex Azarov
так к нему не надо присоединяться заново, там все кто присоединился ещё в 2021
Sergei
Я вот сел, написал первую часть сегодняшней, на примере все хорошо, а на реальном инпуте пишет результат сильно меньше
Sergei
Даже случай когда цифра есть в конце строки и начале следующей предусмотрел, добавил при парсинге каждой строке точки по краям