Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2022-12-04, 22:46
  #1
Medlem
Ja, då har kodarnas adventskalender dragit igång i år igen. Jag tänkte att vi skulle diskutera lite hur man har gått till väga i uppgifterna i generella drag. Eftersom att adventskalendern är öppen för alla, på alla språk, tänkte jag att vi skulle hålla oss till Pythoniska drag här. För en god etik skriver vi inte några hela lösningar, utan behövs det en fråga om tankegång eller en fråga om kod så postar man korta kodsnuttar som behandlar frågan. T.ex hur vi kan sortera saker, eller hur vi gör med t.ex tydligheten i sin kod.


Adventskalendern hittar du självklart på https://adventofcode.com/
OBS! Inga hela eller halva lösningar här!


För min del ligger uppgiften i att försöka koda på ett tydligt sätt och använda en bra struktur för t.ex. uppgiften om ryggsäckarna.


Dag1:
Här var det frågan om hur strukturen skulle se ut. Ska man använda dataklassen, klassen eller enbart funktioner för älvorna och dess kalorier? Uppgiften som sådan var rakt på.

Dag 2:
Åter struktur, ska man använda dict, sets eller dataklasser för ändamålet? Part 2 gav en spinnoff mot motsatt håll så där var man tvungen att koda om en del av koden. Jag hade en klass och en dict, men kunde nog köra en dataklass för prioriteten istället för en dict.

Dag3:
Här var stora svårigheten att bestämma sig för hur man skulle gruppera strängarna. Lätt att fastna i ett kaninhål. Det blev att slätt köra utan gruppering i en parser. Tips för nya och gamla: Python har hela alfabetet i gemener och versaler inbyggt i sig. Använd denna funktionalitet så slipper ni rada upp alfabetet manuellt i en lista!

Dag4:
Här lärde jag mig något nytt att jämföra sekvenser med range() och det ledde till en väldigt konstig if-sats
Kod:
if elf1.sections[0] in range(elf2.sections[0],elf2.sections[1]+1) and elf1.sections[1] in range(elf2.sections[0],elf2.sections[1]+1):

Frågan är här under dag4 hur man kan effektivisera och skriva den ifsatsen tydligare?
(gör uppgiften före du svarar på frågan, då du nu inte ved vad den gör)



Så reflektera och skriv. Posta kodsnuttar som var intressanta!
Men:OBS! Inga hela eller halva lösningar här!
Och håll er självklart till Python, eller om ni har löst uppgifterna med ett annat språk; försöka översätta tankegången till Python.
__________________
Senast redigerad av Methos 2022-12-04 kl. 22:52.
Citera
2022-12-04, 23:34
  #2
Medlem
Bromsklosss avatar
Jag orkar inte läsa en saga om tomtenissar kring varje problem. Finns det någonstans där man kan få problemen i en renodlad och kompakt formulering?
Citera
2022-12-05, 00:05
  #3
Medlem
"Sagan" är en del av problemformuleringen. Längst ned på varje sida har du uppgiften i mer kompakt format med exempel som du skall testa på. Så där har du din enkla problemformulering. Du måste givetvis vara inloggad för att få ditt unika pussel och svarsrutan som du skall skriva in svaret i.
Citera
2022-12-05, 21:32
  #4
Medlem
Enterprises avatar
Lite kul för oss "korsordskodare".
Citat:
Ursprungligen postat av Methos
Dag1:
Här var det frågan om hur strukturen skulle se ut. Ska man använda dataklassen, klassen eller enbart funktioner för älvorna och dess kalorier? Uppgiften som sådan var rakt på.
Denna övning var nästan för enkel. Jag använde varken klasser eller funktioner. Enbart en enkel for-loop som summerar kalorier och håller ordning på dubbel newline för nollställning av räkneverk. Är det jag som underkomplicerar eller du som överkomplicerar?

PS. Elf i julbemärkelse = Tomtenisse != älva
__________________
Senast redigerad av Enterprise 2022-12-05 kl. 21:44.
Citera
2022-12-05, 21:47
  #5
Medlem
Citat:
Ursprungligen postat av Enterprise
Lite kul för oss "korsordskodare".

Denna övning var nästan för enkel. Jag använde varken klasser eller funktioner. Enbart en enkel for-loop som summerar kalorier och håller ordning på dubbel newline för nollställning av räkneverk. Är det jag som underkomplicerar eller du som överkomplicerar?

PS. Elf i julbemärkelse = Tomtenisse != älva

Nää, parse på \n\n och sedan sumera listan som blir för varje grupp. Klart. Inga foorloopar där inte.


Jag tror nog att det är båda två som komplicerar. Jag söker göra min kod lite strukturerad.

Men du; Jag har stora problem att försöka reda ut hur jag skall göra en sträng med:

Kod:
"      [G]      "
till
[None, [G], None]


Av någon anledning kan jag inte strängmanipulera med mellanslag i strängen. "None" är viktig för placeringen i listan är ENORMT viktig i dag 5. Mellanrummen är avsaknad av ett element.
Citera
2022-12-05, 21:51
  #6
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Methos
Jag tror nog att det är båda två som komplicerar. Jag söker göra min kod lite strukturerad.

Men du; Jag har stora problem att försöka reda ut hur jag skall göra en sträng med:

Kod:
"      [G]      "
till
[None, [G], None]


Av någon anledning kan jag inte strängmanipulera med mellanslag i strängen. "None" är viktig för placeringen i listan är ENORMT viktig i dag 5. Mellanrummen är avsaknad av ett element.
Jag försöker göra koden så enkel som möjligt, men jag hade tur på dag 1 att jag inte gjort den alltför enkel, eftersom det fanns en andra halva. I första halvan hade ju räckt med att spara ett maxnummer (utan behov av att spara någon lista), men i andra halvan var det tur att jag gjort en lista så man lätt kunde sortera denna och summera de tre största.

OK, inga spoilers nu, så tar jag en dag i sänder
Citera
2022-12-05, 21:53
  #7
Medlem
Citat:
Ursprungligen postat av Enterprise
Jag försöker göra koden så enkel som möjligt, men jag hade tur på dag 1 att jag inte gjort den alltför enkel, eftersom det fanns en andra halva. I första halvan hade ju räckt med att spara ett maxnummer (utan behov av att spara någon lista), men i andra halvan var det tur att jag gjort en lista så man lätt kunde sortera denna och summera de tre största.

OK, inga spoilers nu, så tar jag en dag i sänder

Men frågan var seriös, hur fanken gör jag min sträng till [None, char, None] JAg blir tokig! Jag kan inte splittra på space då halva strängen är space.
Citera
2022-12-05, 21:56
  #8
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Methos
Men frågan var seriös, hur fanken gör jag min sträng till [None, char, None] JAg blir tokig! Jag kan inte splittra på space då halva strängen är space.
Langsam aber sicher... En sak i taget osv. Nu jobbar jag med 2/12
Citera
2022-12-05, 22:37
  #9
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Methos
¨
Dag 2:
Åter struktur, ska man använda dict, sets eller dataklasser för ändamålet? Part 2 gav en spinnoff mot motsatt håll så där var man tvungen att koda om en del av koden. Jag hade en klass och en dict, men kunde nog köra en dataklass för prioriteten istället för en dict.
Jag körde olika dicts och var också tvungen att koda om lite vid del 2, men bara lite.
Lite gängse slarvfel gjorde att det tog några minuter extra
Citera
2022-12-05, 23:01
  #10
Medlem
Citat:
Ursprungligen postat av Enterprise
Jag körde olika dicts och var också tvungen att koda om lite vid del 2, men bara lite.
Lite gängse slarvfel gjorde att det tog några minuter extra

37 min för dag 2? Börjar du slappa?
Citera
2022-12-05, 23:28
  #11
Medlem
Enterprises avatar
Citat:
Ursprungligen postat av Methos
37 min för dag 2? Börjar du slappa?
Nja, multitaskar, snarare och sippar lite Whisky. Men det är ingen tävling Methos
Dag 3 nu klar. Sovdags.
Citera
2022-12-05, 23:47
  #12
Medlem
Citat:
Ursprungligen postat av Enterprise
Nja, multitaskar, snarare och sippar lite Whisky. Men det är ingen tävling Methos
Dag 3 nu klar. Sovdags.

Du har missat att det finns en highscore?
Dock kan vi inte tävla där då tidszonerna gör att vi hamnar efter.
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback