Forwarded from DOU
Розробник Ерік Уостл випустив чергову версію популярного адвент-календаря — Advent of Code 2024. Долучайся до події! 👉https://dou.ua/goto/Rnhs
Forwarded from Мемний міксер
Я долучаюся до збору @vyvozymo на М113 для 3 ОШБр🔥
Бронетранспортери М113 — необхідний для бійців транспорт, щоб здійснювати евакуацію. Бригада міцно тримає позиції на Харківському напрямку.
Загальна сума збору — 50 000 000 грн.
Для того, щоб приєднатися, напиши «+» у дірект @ab3.support
Ми вивозимо разом! Ти з нами?
https://send.monobank.ua/jar/5WtvJqXH5F
Бронетранспортери М113 — необхідний для бійців транспорт, щоб здійснювати евакуацію. Бригада міцно тримає позиції на Харківському напрямку.
Загальна сума збору — 50 000 000 грн.
Для того, щоб приєднатися, напиши «+» у дірект @ab3.support
Ми вивозимо разом! Ти з нами?
https://send.monobank.ua/jar/5WtvJqXH5F
👍1
Forwarded from ОГо!
Якщо ви відкрили картку «Національний кешбек» в Приваті то вам не завадить дізнатися на що ви погодилися
Ось цей договір повністю
Покажіть це знайомим
Ще не запізно це виправити – інші банки таке не роблять
Ось цей договір повністю
Покажіть це знайомим
Ще не запізно це виправити – інші банки таке не роблять
ОГо!
Якщо ви відкрили картку «Національний кешбек» в Приваті то вам не завадить дізнатися на що ви погодилися Ось цей договір повністю Покажіть це знайомим Ще не запізно це виправити – інші банки таке не роблять
єврей в мені переміг і я відкрив карту в приваті (як лох)
в саппорті сказали банально закрити (не заморозити, а закрити) рахунок (або карту) і цей дозвіл аннулюється
в саппорті сказали банально закрити (не заморозити, а закрити) рахунок (або карту) і цей дозвіл аннулюється
👍1
#advent_of_code_2024
Day 4
https://adventofcode.com/2024/day/4
Part 1
Перша задача з траверсом по матриці
Записуємо інпут в масив масиву, проходимось по всім елементам, які починаються на X
далі створюємо масиви можливих шляхів (всього їх 8, бо включають в собі діагональ)
потім фільтруємо ті варіанти, де наступна буква по шляху відповідає слову XMAS
Part 2
інколи другі частини легші за перші)
тут проходимось по всім "хрестовинам" - буквам А, які можуть бути центрами хрестів
по ним знаходимо букви по краям хреста і конвертуємо їх в масив або просто строку
діло в тому, що правильні хрести будуть мати кінечні позиції, які можна розрахувати (всього їх 4, якщо повертати хрест на 90 градусів)
таким чином можна дізнатись, що хрест підходить і завершити предикат на правильність хреста
солюшн тут: https://github.com/Pyroarsonist/advent-of-code-2024
Day 4
https://adventofcode.com/2024/day/4
Part 1
Перша задача з траверсом по матриці
Записуємо інпут в масив масиву, проходимось по всім елементам, які починаються на X
далі створюємо масиви можливих шляхів (всього їх 8, бо включають в собі діагональ)
потім фільтруємо ті варіанти, де наступна буква по шляху відповідає слову XMAS
Part 2
інколи другі частини легші за перші)
тут проходимось по всім "хрестовинам" - буквам А, які можуть бути центрами хрестів
по ним знаходимо букви по краям хреста і конвертуємо їх в масив або просто строку
діло в тому, що правильні хрести будуть мати кінечні позиції, які можна розрахувати (всього їх 4, якщо повертати хрест на 90 градусів)
таким чином можна дізнатись, що хрест підходить і завершити предикат на правильність хреста
солюшн тут: https://github.com/Pyroarsonist/advent-of-code-2024
GitHub
GitHub - Pyroarsonist/advent-of-code-2024: https://adventofcode.com/2024
https://adventofcode.com/2024. Contribute to Pyroarsonist/advent-of-code-2024 development by creating an account on GitHub.
#advent_of_code_2024
Day 5
https://adventofcode.com/2024/day/5
Part 1
Парсимо першу частину оутпуту в одну сутність, а другу - в іншу
Треба буде проходитись по апдейтам і валідувати їх, зважаючи на рули
Щоб не робити цикл в циклі, створюємо певну мапу або "павутину", яка має всю інформацію про рули: які сторінки повинні йти раніше, а які пізніше, за тотожню і перевіряємо кожну сторінку в апдейті
Part 2
можемо використати код з першої частини та відфільтрувати незапринтені апдейти, саме їх треба пофіксити і знайти суму їх еверейдж чисел
для цього будемо використовувати наступний алгоритм:
ітеруємось форіфом по масиву, кожного разу створюючи слайс
в цей слайс поетапно "пихаємо" останній елемент, поки слайс не стане валідним (використовуючи функцію-предикат, який вже написали в 1 частині)
головне не забути перезаписати основний масив новим пофікшеним слайсом
солюшн тут: https://github.com/Pyroarsonist/advent-of-code-2024
Day 5
https://adventofcode.com/2024/day/5
Part 1
Парсимо першу частину оутпуту в одну сутність, а другу - в іншу
Треба буде проходитись по апдейтам і валідувати їх, зважаючи на рули
Щоб не робити цикл в циклі, створюємо певну мапу або "павутину", яка має всю інформацію про рули: які сторінки повинні йти раніше, а які пізніше, за тотожню і перевіряємо кожну сторінку в апдейті
Part 2
можемо використати код з першої частини та відфільтрувати незапринтені апдейти, саме їх треба пофіксити і знайти суму їх еверейдж чисел
для цього будемо використовувати наступний алгоритм:
ітеруємось форіфом по масиву, кожного разу створюючи слайс
в цей слайс поетапно "пихаємо" останній елемент, поки слайс не стане валідним (використовуючи функцію-предикат, який вже написали в 1 частині)
головне не забути перезаписати основний масив новим пофікшеним слайсом
солюшн тут: https://github.com/Pyroarsonist/advent-of-code-2024
GitHub
GitHub - Pyroarsonist/advent-of-code-2024: https://adventofcode.com/2024
https://adventofcode.com/2024. Contribute to Pyroarsonist/advent-of-code-2024 development by creating an account on GitHub.
🥱1
#advent_of_code_2024
Day 6
https://adventofcode.com/2024/day/6
Part 1
Записуємо інпут в матрицю і створюємо окрему матрицю "візитерів"
Симулюємо "кроки" в циклі, під час яких записуємо візити та дивимось, чи охоронець вийшов за межі поля або підійшов до перешкоди. Напрямок охоронця конвертуємо в dx, dy координат і так симулюємо його хід.
В кінці рахуємо суму всіх булеан-візитів.
Part 2
Треба знайти шляхи, по яким ходить охоронець без доданих перешкод і ітерувати по ним:
ставимо перешкоду на кожну ячейку та симулюємо ходьбу охоронця, поки він не попаде в цикл (зберігаючи його ходи), або поки він не вийде із мапи.
солюшн тут: https://github.com/Pyroarsonist/advent-of-code-2024
Day 6
https://adventofcode.com/2024/day/6
Part 1
Записуємо інпут в матрицю і створюємо окрему матрицю "візитерів"
Симулюємо "кроки" в циклі, під час яких записуємо візити та дивимось, чи охоронець вийшов за межі поля або підійшов до перешкоди. Напрямок охоронця конвертуємо в dx, dy координат і так симулюємо його хід.
В кінці рахуємо суму всіх булеан-візитів.
Part 2
Треба знайти шляхи, по яким ходить охоронець без доданих перешкод і ітерувати по ним:
ставимо перешкоду на кожну ячейку та симулюємо ходьбу охоронця, поки він не попаде в цикл (зберігаючи його ходи), або поки він не вийде із мапи.
солюшн тут: https://github.com/Pyroarsonist/advent-of-code-2024
GitHub
GitHub - Pyroarsonist/advent-of-code-2024: https://adventofcode.com/2024
https://adventofcode.com/2024. Contribute to Pyroarsonist/advent-of-code-2024 development by creating an account on GitHub.
#advent_of_code_2024
Day 7
https://adventofcode.com/2024/day/7
Part 1
Тут треба трошки читів з рушія 3 квейку.
Репрезентуємо кожен стан рівняння як бінарний вираз, наприклад: у трьох додатків a,b,c буде бінарний вираз у вигляді "10", тобто від "00" до "11" (всього 2^n різних виразів або позицій, де n - кількість додатків). Ітеруємося бінарно на +1, де 0 буде операцією суми, а 1 - операцією множення. Також додамо обмеження, що якщо в конкретному готовому виразі результат буде більше, ніж очікуваний - то такий результат не підходить, це трохи зекономить час. Проходимось по всім виразам і отримуємо результат для конкретного рівняння.
Part 2
Підхід з першої частини був потужним.
Замість того, щоб працювати з бінарною системою числення, вводимо ще один оператор і працюємо з тернарною системою числення (тобто там де цифри 0, 1 і 2).
Тепер максимальна кількість ітеруємих чисел до 3^n, а стан кожної операції - це тернарне відображення ітерації (тобто приводимо номер ітерації не до бінарного виду 0101, а до тернарного 0012)
солюшн тут: https://github.com/Pyroarsonist/advent-of-code-2024
Day 7
https://adventofcode.com/2024/day/7
Part 1
Тут треба трошки читів з рушія 3 квейку.
Репрезентуємо кожен стан рівняння як бінарний вираз, наприклад: у трьох додатків a,b,c буде бінарний вираз у вигляді "10", тобто від "00" до "11" (всього 2^n різних виразів або позицій, де n - кількість додатків). Ітеруємося бінарно на +1, де 0 буде операцією суми, а 1 - операцією множення. Також додамо обмеження, що якщо в конкретному готовому виразі результат буде більше, ніж очікуваний - то такий результат не підходить, це трохи зекономить час. Проходимось по всім виразам і отримуємо результат для конкретного рівняння.
Part 2
Підхід з першої частини був потужним.
Замість того, щоб працювати з бінарною системою числення, вводимо ще один оператор і працюємо з тернарною системою числення (тобто там де цифри 0, 1 і 2).
Тепер максимальна кількість ітеруємих чисел до 3^n, а стан кожної операції - це тернарне відображення ітерації (тобто приводимо номер ітерації не до бінарного виду 0101, а до тернарного 0012)
солюшн тут: https://github.com/Pyroarsonist/advent-of-code-2024
GitHub
GitHub - Pyroarsonist/advent-of-code-2024: https://adventofcode.com/2024
https://adventofcode.com/2024. Contribute to Pyroarsonist/advent-of-code-2024 development by creating an account on GitHub.