Viktor
ахха. питоновская магия? 😄
Alexandr
какой там, 100 строк парсинга и строительства дерева))
разве что сумму для первой части можно чуть удобнее посчитать, типо
sum(x for x in totals if x < 100_000)
Dimchik
Sergei
Больше всего в новом дизайне литкода мне нравится, что в редакторе появился prettier и по option+shift+f делает красиво
slisnychyi
мне наоборот пока подсветка кода не заходит или я привык уже без подсветки писать.
Viktor
решил не жмотничать и поддержать Эрика.
Viktor
две ☕️ в старбаксе ушли на поддержку инфраструктуры и “sushi addiction” 😄
Dimchik
Alex Azarov
всё ещё решаете adventofcode? задумайтесь...🧐
Evgeniy
Alex Azarov
кстати в прошлом году в лидерборде этого чатика было 23 человека, а в этом году 40
Evgeniy
Alex Azarov
ага, из тех 23 сейчас что-то решают только 12
Viktor
Viktor
просто задачи сложнее становятся
Viktor
нельзя однострочником решить 😄
Alex Azarov
Andrey
а что грязно? парсинг в дерево?
Я решил схалтурить и не стоить дерево. Просто в мапе храню полные пути директорий с их размерами, а рядом еще текущий путь, чтобы все инкрементить по ходу. В итоге с полчаса дебажить пришлось, лишь бы решить и работать пойти. Причесать можно, но уже лень :)
Andrey
Alex Azarov
Alex Azarov
tuple(map(lambda func: func(__import__("functools").reduce((lambda data, x: dict(cwd={"/":[], "..":data["cwd"][:-1]}.get(x[5:].strip(), data["cwd"] + [x[5:].strip()]), fs=data["fs"]) if x.startswith("$ cd") else (dict(cwd=data["cwd"], fs= data["fs"] + __import__("collections").Counter({"/".join(data['cwd'][:i]): int(x.split(" ")[0]) for i in range(len(data["cwd"]) + 1)})) if x.split(" ")[0].isdigit() else data)),open("input7.txt").read().strip().split('\n'),dict(cwd=[], fs=__import__("collections").Counter()))["fs"]),[lambda fs: sum(dirsize for dirsize in fs.values() if dirsize < 100000), lambda fs: min(x for x in ((v + 40000000 - fs[""],v) for k,v in fs.items()) if x[0] > 0)[1]]))
Andrey
tuple(map(lambda func: func(__import__("functools").reduce((lambda data, x: dict(cwd={"/":[], "..":data["cwd"][:-1]}.get(x[5:].strip(), data["cwd"] + [x[5:].strip()]), fs=data["fs"]) if x.startswith("$ cd") else (dict(cwd=data["cwd"], fs= data["fs"] + __import__("collections").Counter({"/".join(data['cwd'][:i]): int(x.split(" ")[0]) for i in range(len(data["cwd"]) + 1)})) if x.split(" ")[0].isdigit() else data)),open("input7.txt").read().strip().split('\n'),dict(cwd=[], fs=__import__("collections").Counter()))["fs"]),[lambda fs: sum(dirsize for dirsize in fs.values() if dirsize < 100000), lambda fs: min(x for x in ((v + 40000000 - fs[""],v) for k,v in fs.items()) if x[0] > 0)[1]]))
Люблю питон за его читабельность
Alex Azarov
tuple(map(lambda func: func(__import__("functools").reduce((lambda data, x: dict(cwd={"/":[], "..":data["cwd"][:-1]}.get(x[5:].strip(), data["cwd"] + [x[5:].strip()]), fs=data["fs"]) if x.startswith("$ cd") else (dict(cwd=data["cwd"], fs= data["fs"] + __import__("collections").Counter({"/".join(data['cwd'][:i]): int(x.split(" ")[0]) for i in range(len(data["cwd"]) + 1)})) if x.split(" ")[0].isdigit() else data)),open("input7.txt").read().strip().split('\n'),dict(cwd=[], fs=__import__("collections").Counter()))["fs"]),[lambda fs: sum(dirsize for dirsize in fs.values() if dirsize < 100000), lambda fs: min(x for x in ((v + 40000000 - fs[""],v) for k,v in fs.items()) if x[0] > 0)[1]]))
(стырил с реддита)
я сам решаю на Kotlin ради призов от JetBrains 😂
https://blog.jetbrains.com/kotlin/2022/11/advent-of-code-2022-in-kotlin/
Alex Azarov
а поскольку я особо котлин не знаю, у меня есть коллега
Alex Azarov
Alex Azarov
Viktor
Anvar
А в чем суть решить в 6:30?
Alex Azarov
чем раньше решишь тем выше будешь в лидербордах
Anvar
Dimchik
Впадлу раньше вставать только из-за рейтинга)
Viktor
Dimchik
Anvar
Viktor
Сегодня тоже неплохая задача, но без всякого алгоритмического выпендройдства — решал в лоб. Инпут 100x100, можно резвиться как хочешь.
Stas
Ребят, я пропустил 5,6,7 дни, реально ли теперь догнать? 😅
Viktor
Viktor
А вот через недельку уже лучше уходить в отпуск и садиться решать фултайм 🤣
Sergei
Viktor
Viktor
12 часовой стрим 😅
Sergei
Как некоторые таксисты, один проснулся, другой пошел спать в багажник)
V
Stas
Viktor
Так что рекомендую подождать 7 лет
Sergei
Подскажите, пожалуйста, по задаче: в массиве найти пары чисел (i <= j), сумма которых удовлетворяет условию 2^X = nums[i] + nums[j].
Вопрос: как-то эффективнее n^2 можно пары составлять?
Sergei
V
Viktor
Sergei
Их сумма - это двойка в какой-то степени
Sergei
если так и есть - записываем пару
Viktor
Их сумма - это двойка в какой-то степени
Ага. Тогда может по аналогии с two sums, как @vtambourine предлагает. У тебя все степени двойки заранее известны, ты можешь составить мапу с разностями степеней и чисел в массиве — потом по ней искать, кто из чисел в массиве дополнит
Sergei
Наверное, так же как two sum через словарь
Dzianis
Лёгкие 10 поинтов на литкоде 😄
Alexander
Alex Azarov
Alex Azarov
чё-т я придумал только каждый элемент отдельно проверять во все четыре стороны, это ещё более неэффективно, зато по памяти O(1)
Alexander
Alexander
Dimchik
вторую
ага, первая по оптимизации устраивает) а вот вторая такое... но так в голову не заходит как легко оптимизировать)
Viktor
крутой рекрутер
Viktor
Viktor
это реально гениально
Viktor
he didn’t Node how to Express, ну ты понял, понял!
Viktor
Sergei
Dad jokes)
Serega
Viktor
ахахах
Viktor
надо было ему пару видосов по алгосикам глянуть сперва
Roman
https://hakaton.wagnercentr.ru/ lol
Alex Azarov
Dimchik
решил сделать консоль лог инпута, кактусы - деревья которых не видно со стороны, звездочки - цифра 0 в инпуте :)