Advent of Code 2020, Python, Tag 1

preview_player
Показать описание
Lösung der aktuellen Aufgabenstellung in Python.

Рекомендации по теме
Комментарии
Автор

Zwar nicht frei von Seiteneffekten aber es funktioniert 🤣. Letztes Jahr hast du glaube ich auch mit der map Funktion gearbeitet.
LG ✌

def puzzle_einlsesen(datei):
with open(datei) as f:
return f.read().split()


daten = list(map(int,

for x in daten:
for z in daten[daten.index(x) + 1:]:
for q in daten[daten.index(x) + 2:]:
if z + x == 2020:
print(x * z, x, z)
break
if z + x + q == 2020:
print(x * z * q, x, z, q)

masterbe
Автор

Cooles Video!
Ich habe meine Lösungen für Tag 1 und 2 auch schon hochgeladen. Würde mich freuen, wenn du dir diese auch mal anschaust...😀

lechuck_-developer
Автор

Ich habe nochmals mit den Set's rumprobiert. Sind rund 100x schneller als meine 3 verschachtelte for-Schleifen.

import time


def puzzle_einlsesen(datei):
with open(datei) as f:
return f.read().split()


def löse1(daten):
seen = set()
for i in daten:
seen.add(i)
if 2020 - i in seen:
return (2020 - i) * i
break


def löse2(daten):
seen = set()
for i in daten:
seen.add(i)
for j in seen:
if 2020 - i - j in seen:
return (2020 - i - j) * j * i
break


daten = list(map(int,

start = time.perf_counter()
print(löse1(daten), time.perf_counter() - start)
start = time.perf_counter()
print(löse2(daten), time.perf_counter() - start)

masterbe
Автор

Hi, hier mein Code für Tag 1
with open('input.txt', 'r') as file:
data = {int(number) for number in file}

# Part 1
print({entry * (2020 - entry) for entry in data if (2020 - entry) in data})

# Part 2
print({entry1 * entry2 * (2020 - entry1 - entry2)
for entry1 in data for entry2 in data
if (2020 - entry1 - entry2) in data})

brotherlui
Автор

das ist aber nicht mit Python oder irre ich m ich

ianhinrichsen