Как написать сложный алгоритм просто | Advent of Code 2023 Day 5

Паша Егоров из Контура утверждает, что сложный алгоритм не обязательно должен быть написан сложным образом. По его мнению, любой код должен быть простым и понятным, чтобы каждый разработчик, прочитавший ваш код, не испытывал трудностей :)
Разбираемся, как это делать на примере задачи 5-го дня с Advent of Code 2023.
Приходите в наше комьюнити решателей Advent of Code: t.me/+KJMKnawI71w5NjJi
И его чат: t.me/konturAoC2023_chat
Больше событий и полезной инфы:
- в телеграм-канале t.me/+zWBpy5_75BU3OGVi
- на сайте про технологии в Контуре tech.kontur.ru

Пікірлер: 10

  • @Alayzcer
    @Alayzcer7 ай бұрын

    Спасибо! Очень познавательное видео! Купил книжку автора Ivan Čukić про функциональное программирование в С++. Затем начал применять больше декларативного подхода. В целом, подход в написании кода стал похож с представленным в видео. Подтверждаю - код стало легче писать, а главное понимать. Распределять сложность по функциям и объектам здорово помогает сконцентрироваться на решении небольших, локальных задач.

  • @alekseilarkov3646
    @alekseilarkov36467 ай бұрын

    Мы будем использовать для имен классов существительные - class Transform :D

  • @PavelEgorov-xoposhiy

    @PavelEgorov-xoposhiy

    7 ай бұрын

    :-) Но Transform это ведь и существительное тоже!

  • @alekseilarkov3646

    @alekseilarkov3646

    7 ай бұрын

    ​@@PavelEgorov-xoposhiy конечно, мы ведь за гибкость любого языка

  • @AndersonSilva-dg4mg
    @AndersonSilva-dg4mg7 ай бұрын

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

  • @ArtemPelenitsyn
    @ArtemPelenitsyn7 ай бұрын

    Звук тихий :-(

  • @vladslav0088

    @vladslav0088

    7 ай бұрын

    Проблема на вашей стороне

  • @blusterhash
    @blusterhash7 ай бұрын

    А нельзя ли тут пойти "задом наперёд"? Ввести понятие обратного отображения и посмотреть, откуда пришёл первый элемент на нижнем слое с самого верхнего? Ведь нас только про первый элемент спрашивают

  • @PavelEgorov-xoposhiy

    @PavelEgorov-xoposhiy

    7 ай бұрын

    Первый элемент ведь как раз и не известен. Придется проверять все числа с самого маленького, трансформировать его назад и смотреть попал ли он в один из исходных диапазонов? Но если предварительно справиться схлопнуть все трансформации в одну трансформацию, то проверять можно будет каждое число довольно быстро (бинпоиском, за логарифм отображений в этой одной трансформации) и это решение более менее может сработать.

  • @legalelegage5498
    @legalelegage54987 ай бұрын

    Едва ли проще, чем было

Келесі