Advent of Code 2020 Vorige deel Overzicht Volgende deel Laatste deel

Dit topic is onderdeel van een reeks. Ga naar het meest recente topic in deze reeks.

Pagina: 1 2 ... 14 Laatste
Acties:

Acties:
  • +1 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
ThoNohT schreef op woensdag 2 december 2020 @ 16:06:
[...]


Even @Hydra 's code stelen om aan te tonen dat het best een prima regex wordt: https://github.com/nielsu.../advent/y2020/Day02.kt#L7
Nodig is het niet, maar overkill is het nou ook weer niet. Het hangt er ook vanaf hoeveel code je nodig hebt om een regex te gebruiken in je taal gok ik of het de moeite waard is :)
Dat is een regex om de input te parsen, niet de wachtwoorden te valideren. De wachtwoordvalidatie staat hier:
https://github.com/nielsu...nt/y2020/Day02.kt#L14-L15

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • ThoNohT
  • Registratie: September 2006
  • Laatst online: 03-06 13:52
armageddon_2k1 schreef op woensdag 2 december 2020 @ 16:07:
[...]


Dat is een regex om de input te parsen, niet de wachtwoorden te valideren. Die staan hier:
https://github.com/nielsu...nt/y2020/Day02.kt#L14-L15
Hadden we het over wachtwoorden valideren met regex? Dat had ik niet meegekregen. Dat zou ik inderdaad ook niet doen.

Acties:
  • +1 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Of een reguliere expressie handig is, hangt ook af van de taal. De oplossing een stukje terug geschreven in Kotlin van Hydra is vrij elegant, mijn eigen oplossing in Scala ziet er vergelijkbaar uit. In beide talen kan je in een enkele regel met pattern-matching met een reguliere expressie een string omzetten in een instance van een class.

De oplossing in het filmpje van Jonathan dat hier ook geplaatst is doet het zeker ook, en diezelfde constructie had ik ook zeker kunnen bouwen in Scala. Het had er alleen wat minder mooi uitgezien.

Acties:
  • 0 Henk 'm!

  • Reynouts
  • Registratie: Maart 2014
  • Niet online
P_Tingen schreef op woensdag 2 december 2020 @ 13:33:
Nee, de top 100 wordt toch vast weer bezet door idioten fanatici die af zitten te tellen tot de opgave beschikbaar komt, alles in de steigers hebben staan en al beginnen te programmeren voordat ze de opgave helemaal gelezen hebben. Op YouTube waren vorig jaar een paar filmpjes van hoe sommige gasten het oplossen.

Dit zijn echte wedstrijdprogrammeurs, daar komen wij normale stervelingen niet bij in de buurt.
Check bv kanaal van Jonathan Paulson voor de oplossing van vandaag in minder dan 2:30 minuut

[YouTube: Advent of Code 2020 - Day 2]
De filmpjes van hem kijk ik al een aantal jaar. Wat ik zo bijzonder vind is dat wanneer ik naar hem kijk, dat ik soms denk: "hij neemt er wel de tijd voor". Hij komt relaxed over en zoveel heeft hij niet klaarstaan of voorbereid. Hij weet wel snel wat de bedoeling is, ook door zijn ervaring met deze puzzels. Hij probeert volgens mij ook in te schatten wat part 2 zou kunnen zijn waar hij ook al direct rekening mee kan houden.

Als je dan naar die day2 kijkt: eerst gaat hij heel zijn getinput regel typen om zijn input binnen te halen (die regel staat bij andere gewoon al klaar of gaat automatisch). Hij moet zijn import nog typen. Even naar zijn terminal, de input checken en weer terug een regeltje erbij, weer even checken. Dat is zeker al een halve minuut die hij verliest ten opzichten van zijn "concurrenten". Maar uiteindelijk wel echt consistent in de top 100 scoren. _/-\o_

Ik denk soms ook dat ik snel ben, maar dat is vooral in mijn hoofd, want dan is er zo alweer een kwartier voorbij :9

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Ik heb het ook met een Regex gedaan:

Scala:
1
2
3
4
5
6
7
8
9
10
object Entry {

  private val Pattern = "^([0-9]+)-([0-9]+)\\s([a-z]):\\s([a-z]+)$".r

  def apply(line: String): Entry = {
    val Pattern(pos1, pos2, char, password) = line
    new Entry(char.head, pos1.toInt, pos2.toInt, password)
  }

}


Wat me echter nog nooit eerder is gebeurd, is dat het de eerste keer werkte :P

Acties:
  • 0 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
ThoNohT schreef op woensdag 2 december 2020 @ 16:09:
[...]


Hadden we het over wachtwoorden valideren met regex? Dat had ik niet meegekregen. Dat zou ik inderdaad ook niet doen.
Ik wel, maar ik zie nu dat de jij en de rest het wel over file-parsen hadden.... dus :z

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +1 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

eamelink schreef op woensdag 2 december 2020 @ 16:16:
Ik heb het ook met een Regex gedaan:

Scala:
1
2
3
4
5
6
7
8
9
10
object Entry {

  private val Pattern = "^([0-9]+)-([0-9]+)\\s([a-z]):\\s([a-z]+)$".r

  def apply(line: String): Entry = {
    val Pattern(pos1, pos2, char, password) = line
    new Entry(char.head, pos1.toInt, pos2.toInt, password)
  }

}


Wat me echter nog nooit eerder is gebeurd, is dat het de eerste keer werkte :P
Oja, dat kon zelfs op meerdere manieren in Scala. Mijn tactiek was (ongeveer) dit:
Scala:
1
2
3
4
val pattern = "([0-9]+)-([0-9]+) ([a-z]): ([a-z]+)".r.unanchored
inputLines.map{
    case pattern(min, max, char, password) => Policy(min.toInt, max.toInt, char.head, password)
}

Acties:
  • +1 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 13:54
ThoNohT schreef op woensdag 2 december 2020 @ 09:14:
[...]
Wow, die manier waarop je regex output matcht in kotlin ziet er wel nice uit.

Ik had nog getwijfeld tussen parser en regex, maar de input is zo simpel dat ik voor strings splitten ben gegaan in dag 2 felt cute (might change later).
https://fsprojects.github.io/FSharp.Text.RegexProvider/ ;)

F#:
1
2
3
4
5
6
7
8
9
10
11
12
open FSharp.Text.RegexProvider
open FSharp.Text.RegexExtensions

type passwordLine = { num1: int; num2: int; char: char; password: string }
type LineRegex = Regex< @"(?<num1>\d+)-(?<num2>\d+) (?<char>.{1}): (?<password>.+)$" >

let parsed = LineRegex().TypedMatch(line)

{ num1 = parsed.num1.AsInt
  num2 = parsed.num2.AsInt
  char = parsed.char.AsChar
  password = parsed.password.Value }

Acties:
  • 0 Henk 'm!

  • Wesley
  • Registratie: Januari 2007
  • Laatst online: 28-05 19:51
Dit jaar ook maar eens een poging wagen. Weapons of choice: een Google Spreadsheet en waar dat niet volstaat PHP. Gisteren de eerste in een sheet en 2e PHP, vandaag beiden gemakkelijk in de sheet kunnen doen. Benieuwd hoe ver ik daarmee ga komen :)

Acties:
  • +1 Henk 'm!

  • ThoNohT
  • Registratie: September 2006
  • Laatst online: 03-06 13:52
Caelorum schreef op woensdag 2 december 2020 @ 16:33:
[...]

https://fsprojects.github.io/FSharp.Text.RegexProvider/ ;)

F#:
1
2
3
4
5
6
7
8
9
10
11
12
open FSharp.Text.RegexProvider
open FSharp.Text.RegexExtensions

type passwordLine = { num1: int; num2: int; char: char; password: string }
type LineRegex = Regex< @"(?<num1>\d+)-(?<num2>\d+) (?<char>.{1}): (?<password>.+)$" >

let parsed = LineRegex().TypedMatch(line)

{ num1 = parsed.num1.AsInt
  num2 = parsed.num2.AsInt
  char = parsed.char.AsChar
  password = parsed.password.Value }
Jaaa, externe libraries. Dat is valsspelen :+ En alsnog vind ik die van Kotlin hier mooier :)

Acties:
  • +1 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 03-06 14:21
Wel mooi die aandacht voor m'n code. Da's meer in-depth dan 99% van m'n merge requests :D

https://niels.nu


Acties:
  • 0 Henk 'm!

  • mOrPhie
  • Registratie: September 2000
  • Laatst online: 04-06 11:50

mOrPhie

❤️❤️❤️❤️🤍

EHelmond schreef op woensdag 2 december 2020 @ 10:22:

Ik open de file dus ook helemaal niet ik prop het gelijk in de source en probeer het daar een beetje neer te zetten zodat ik er wat mee kan.
Ter ilustratie vandaag zag 1 regel input er bij mij na een beetje slim find and replacen in notepad++ zo uit:
code:
1
{18,19,'t',"tttttttpttttrtttttp"},


Het is vast niet de meest handige manier maar voor mij wel :P
De lol is toch ook dat je wat met die input moet doen? Regexen of zelf parsen. Dat vind ik onderdeel van de opdracht eerlijk gezegd. ;)

Dat gezegd hebbende. Ik doe ook mee, al ben ik bang dat ik niet iedere dag eraan kan zitten. Maar we doen een poging. :P

Ik doe dus mee in C:
https://github.com/DennieBee/advent-of-code/

Een experimentele community-site: https://technobabblenerdtalk.nl/. DM voor invite code.


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 13:54
ThoNohT schreef op woensdag 2 december 2020 @ 16:56:
[...]
Jaaa, externe libraries. Dat is valsspelen :+ En alsnog vind ik die van Kotlin hier mooier :)
Haha ja, of er zit gewoon behoorlijk wat kracht in Type Providers verborgen.
Deze TP heeft wel wat issues idd qua compactheid meer doordat die best oud is al.

Acties:
  • +1 Henk 'm!

  • ydderf
  • Registratie: December 2017
  • Laatst online: 16:30
Hier ook maar een C# poging gewaagd als niet programmeur. Dag 1 is al gelukt. Qua oplossing niet echt een uitdaging, maar voor mij zelf geprobeerd om iets meer met classes te werken ipv alles in 1 Main functie te dumpen. Dus ruim een uur bezig geweest om het project op te zetten en een kwartiertje om de inhoud van "SolvePart1()" en "SolvePart2()" te maken.
Met dank aan de github repo van @Camulos voor wat inspiratie voor de opzet van het project.

[ Voor 10% gewijzigd door ydderf op 02-12-2020 20:45 ]

Soms gaat het niet zoals het moet, maar moet het maar zoals het gaat


Acties:
  • 0 Henk 'm!

  • GeertenVink
  • Registratie: November 2012
  • Laatst online: 03-12-2023
ik heb dit jaar iets meer werk gestopt in input parsing, dit is nu mijn parse voor dag 2 (in C#):

C#:
1
2
3
4
5
6
7
8
9
10
var lines = Input.GetInputLines(input).ToArray();

var inputParser = new InputParser<int, int, char, string>("min-max letter: password");

return lines.Select(line =>
{
    var pi = new ParsedInput();
    (pi.minimum, pi.maximum, pi.letter, pi.password) = inputParser.Parse(line);
    return pi;
}).ToList();

[ Voor 6% gewijzigd door GeertenVink op 02-12-2020 20:24 ]


Acties:
  • 0 Henk 'm!

  • Osxy
  • Registratie: Januari 2005
  • Laatst online: 17:01

Osxy

Holy crap on a cracker

Jup, het parsen alleen. Niet het valideren.

Nieuwe les vandaag was exclusive or (xor) :+ kende die nog niet in c#. Dit jaar sowieso voor het eerst met TDD aan spelen in de AoC.

Afbeeldingslocatie: https://tweakers.net/i/FqRyRe5X4ccpM1OvMdckfrLUA5A=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/7Un4SSAasjvZqQkBpRZ8gvQk.png?f=user_large

https://github.com/osxy/A...2020/AoC2020/Days/Day2.cs

[ Voor 68% gewijzigd door Osxy op 02-12-2020 21:05 ]

"Divine Shields and Hearthstones do not make a hero heroic."


Acties:
  • +1 Henk 'm!

  • Reynouts
  • Registratie: Maart 2014
  • Niet online
Antwoord hoef je niet weg te painten, iedereen heeft zijn persoonlijke input file en bijbehorend antwoord.

Acties:
  • 0 Henk 'm!

  • diabolofan
  • Registratie: Mei 2009
  • Laatst online: 00:19
Met TypeScript/NodeJS waarin ik dit jaar gaan doen, is het wel wat lastiger om te tracen hoe lang je functie er over doet. Heb een runner.ts die alle dagen/opdrachten achter elkaar runt, die een childProcess opstart, waarbij ik de tracing vanuit dat main process wil meten. Maar childProcess.fork start een losstaand proces op, waardoor de executietijd van de echte code een fractie is van de opstarttijd van het losstaande proces, waardoor de metingen niet echt ergens op slaan. Weet iemand hier iets beters voor?

https://github.com/gercob...tOfCode2020/src/runner.ts

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17:57

Creepy

Tactical Espionage Splatterer

Ik gebruik een Parser (in java) om de input te parsen, en dan vervolgens alsnog een hele kleine regex om de verschillende delimiters in 1 keer te kunnen gebruiken :X

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • ll roel j
  • Registratie: Maart 2003
  • Laatst online: 09:24
Tot nu toe is het allemaal nog mogelijk in Excel (sheet, geen VB). Zien wat de dag van morgen gaat brengen of alleen Excel dan nog haalbaar is ;)

Anders ergens toch weer eens proberen te programmeren :/

Acties:
  • 0 Henk 'm!

  • jelknab
  • Registratie: Oktober 2010
  • Laatst online: 19-05 11:45
code:
1
"(?<num1>\\d+)-(?<num2>\\d+)\\s(?<char>.):\\s(?<pass>.*)"


Mijn C# regexje :p.
Iemand anders nog een XOR gebruikt voor deel 2?

https://github.com/jelkna...0Code%202020/Day2/Day2.cs

[ Voor 11% gewijzigd door jelknab op 02-12-2020 22:13 ]


Acties:
  • 0 Henk 'm!

  • Mschamp
  • Registratie: April 2014
  • Laatst online: 17:21
Dit was die van mij. Niet veel ervaring mee, dus kan waarschijnlijk beter.

C#:
1
@"(\d+)-(\d+)\s(.):\s(.+)"

Zie dat ik mijn git nog niet gedeeld had.
Tips altijd welkom. Doe vooral mee om te leren
https://github.com/mscham.../blob/master/2020/Day2.cs

Acties:
  • 0 Henk 'm!

  • leon14
  • Registratie: September 2014
  • Laatst online: 13:22
Osxy schreef op woensdag 2 december 2020 @ 20:35:
[...]

Nieuwe les vandaag was exclusive or (xor) :+ kende die nog niet in c#. Dit jaar sowieso voor het eerst met TDD aan spelen in de AoC.
Ik wist ook niet dat Python de xor had doormiddel van ^, wel leuk om te weten

Acties:
  • 0 Henk 'm!

  • heuveltje
  • Registratie: Februari 2000
  • Laatst online: 18:37

heuveltje

KoelkastFilosoof

en na geleerd te hebben dat ik de for methode in python maar onhandig vind
(doe mij maar gewoon for x = 1 to 10 )
hebben we dag 2 ook succesvol afgerond :)

yeah me :P

[ Voor 16% gewijzigd door heuveltje op 02-12-2020 22:42 ]

Heuveltjes CPU geschiedenis door de jaren heen : AMD 486dx4 100, Cyrix PR166+, Intel P233MMX, Intel Celeron 366Mhz, AMD K6-450, AMD duron 600, AMD Thunderbird 1200mhz, AMD Athlon 64 x2 5600, AMD Phenom X3 720, Intel i5 4460, AMD Ryzen 5 3600 5800x3d


Acties:
  • 0 Henk 'm!

  • Wesley
  • Registratie: Januari 2007
  • Laatst online: 28-05 19:51
ll roel j schreef op woensdag 2 december 2020 @ 22:10:
Tot nu toe is het allemaal nog mogelijk in Excel (sheet, geen VB). Zien wat de dag van morgen gaat brengen of alleen Excel dan nog haalbaar is ;)

Anders ergens toch weer eens proberen te programmeren :/
Ook met 3 van de 4 tot nu toe gedaan, maar deel 2 van dag 1 kreeg ik toch niet direct voor elkaar en toen waren die paar regels code toch sneller geschreven ;) hoe heb je die ongeveer aangepakt?

Acties:
  • 0 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 03-06 14:21
ll roel j schreef op woensdag 2 december 2020 @ 22:10:
Tot nu toe is het allemaal nog mogelijk in Excel (sheet, geen VB). Zien wat de dag van morgen gaat brengen of alleen Excel dan nog haalbaar is ;)
Nouja, mogelijk is het sowieso. Of je het wil doen is wat anders :P

https://niels.nu


Acties:
  • 0 Henk 'm!

  • GeertenVink
  • Registratie: November 2012
  • Laatst online: 03-12-2023
Vandaag is sowieso wel te doen in excel!

Acties:
  • 0 Henk 'm!

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 05-06 10:49

Varienaja

Wie dit leest is gek.

Ik ben er voor gaan zitten om 6:00. Deel 1 was na 7 minuten klaar. Deel 2 na 22 minuten. En dat alleen maar omdat ik _stom_ ben... (Ik verklap nu nog niet waarom). Het had na 8 minuten klaar kunnen zijn..

Anyway: https://github.com/varien...e2020/Solutions.java#L153

Siditamentis astuentis pactum.


Acties:
  • 0 Henk 'm!

  • ElkeBxl
  • Registratie: Oktober 2014
  • Laatst online: 16-05 11:22

ElkeBxl

Tassendraagster

Ik was er ook vroeg aan beginnen, om dan te ontdekken dat ik nog niet genoeg wakker was en echt klassieke fouten maakte |:( Note to self: more coffee!

Oh well, deze opgelost met recursie, was al ff geleden dat ik zoiets nog schreef. Day 03 in TypeScript.

Without nipples, boobs are pointless - 365 project - In mijn hoofd is het alle dagen Kerstmis - What type of bees make milk? Boobies! - What type of bees are scary? BoooOOOOOooobeees! - Cactusliefhebster


Acties:
  • +1 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
Zo, deze was weer lekker simpel. Even in de trein opgelost.

https://github.com/rj-cod.../rjcoding/aoc2020/Day3.kt

spoiler:
De crux zit hem in part2 natuurlijk in de Integer overflow

[ Voor 20% gewijzigd door armageddon_2k1 op 03-12-2020 07:08 ]

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +1 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Hier over hetzelfde gestruikeld :P

Acties:
  • 0 Henk 'm!

  • dcm360
  • Registratie: December 2006
  • Niet online

dcm360

Moderator Discord

HD7767 powered

Oh, dan had ik net geluk met mijn input :P

De uitdaging van vandaag zat bij mij niet echt in de code, maar in IntelliJ. Iets daarvan is bljkbaar gesneuveld op mijn laptop, dus nu dat maar eens oplossen zodat ik er morgen meer aan heb.

Oja, en vermenigvuldigen en optellen zijn niet hetzelde :+

Acties:
  • 0 Henk 'm!

  • Mschamp
  • Registratie: April 2014
  • Laatst online: 17:21
Dag 3 is mij ook gelukt.
Tot nu toe valt het mee en leuk om te doen.
15 minuten voor de 2 opdrachten samen.
https://github.com/mscham.../blob/master/2020/Day3.cs

[ Voor 24% gewijzigd door Mschamp op 03-12-2020 08:22 ]


Acties:
  • +1 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik had hetzelfde probleem, maar dat viel direct op door een negatief getal, dus dat duurde niet lang. Deel 1 had ik binnen 2 minuten opgelost.

Deel 2 heb ik toch een minuut of 15 over gedaan en een verkeerd antwoord submitted, doordat ik een stom foutje had die even duurde voordat ik hem doorhad.
spoiler:
Bij de input waar down > 1, sloeg ik wel de juiste lijnen over, maar deed nog steeds de zijwaartse beweging voor die lines

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Osxy
  • Registratie: Januari 2005
  • Laatst online: 17:01

Osxy

Holy crap on a cracker

Was prima te doen, deel 2 was na refactor van code voor deel 1 in 3min klaar.

spoiler:
Ik had denk ook mazzel met input want had ook geen int overflow, kwam op 2.106.818.610 uit.



https://github.com/osxy/A...2020/AoC2020/Days/Day3.cs

[ Voor 26% gewijzigd door Osxy op 03-12-2020 08:54 ]

"Divine Shields and Hearthstones do not make a hero heroic."


Acties:
  • 0 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 08:44

P_Tingen

omdat het KAN

spoiler:
Ja hier ook, ik kon deel 1 in een functie gooien met 2 parameters. Daardoor was deel 2 appeltje-eitje

... en gaat over tot de orde van de dag


Acties:
  • +2 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 03-06 14:21
En dag 3

Dit was een leuke. Had eerst een iteratieve oplossing en bedacht me toen dat een functionele oplossing ook kon. Natuurlijk scheelde dat weer aardig wat regels code, dus ik ben hiermee wel in m'n nopjes!

https://niels.nu


Acties:
  • 0 Henk 'm!

  • ll roel j
  • Registratie: Maart 2003
  • Laatst online: 09:24
Wesley schreef op woensdag 2 december 2020 @ 23:27:
[...]


Ook met 3 van de 4 tot nu toe gedaan, maar deel 2 van dag 1 kreeg ik toch niet direct voor elkaar en toen waren die paar regels code toch sneller geschreven ;) hoe heb je die ongeveer aangepakt?
Dag 1, deel 2 heb ik inderdaad niet via Excel gedaan uiteindelijk maar met Notepad++ en calculator
Excel was wel mogelijk maar handmatig ging sneller ;)

Acties:
  • 0 Henk 'm!

  • ll roel j
  • Registratie: Maart 2003
  • Laatst online: 09:24
Hydra schreef op donderdag 3 december 2020 @ 00:01:
[...]


Nouja, mogelijk is het sowieso. Of je het wil doen is wat anders :P
Hahaha. Je hebt gelijk 8) Vind de uitdaging om daar zover mogelijk mee te komen ook wel leuk. Extra uitdaging bij de AoC.

Acties:
  • 0 Henk 'm!

  • DRaakje
  • Registratie: Februari 2000
  • Niet online
Osxy schreef op donderdag 3 december 2020 @ 08:53:
Was prima te doen, deel 2 was na refactor van code voor deel 1 in 3min klaar.

spoiler:
Ik had denk ook mazzel met input want had ook geen int overflow, kwam op 2.106.818.610 uit.


https://github.com/osxy/A...2020/AoC2020/Days/Day3.cs
Ja ik had dus wel de overflow, gelukkig meteen door wat het probleem was, vroeger had me dat weer 10 minuten gekost.

Ik zag dit
C#:
1
2
3
4
5
6
7
8
if (x + right > lineLength - 1)
      {
             x = right - (lineLength - x);
       }

en je kan daar modulo voor gebruiken.

array[index % maxlengte]

[ Voor 6% gewijzigd door DRaakje op 03-12-2020 10:34 ]


Acties:
  • 0 Henk 'm!

  • ZpAz
  • Registratie: September 2005
  • Laatst online: 04-06 21:00
Heb ondertussen 6 sterren weten te bemachtigen, maar volgens mij is de leaderboard ook al een puzzel op zich, of op zijn minst lees ik iets verkeerds ofzo.
Getting a star first is worth 100 points, second is 99, and so on down to 1 point at 100th place.
Maar de nummer 1 op de Tweakers private board heeft 645 punten. Met zes mogelijke sterren, constant eerste zijn, levert dat toch max 600 punten op?

Door
Because of an outage during the day 1 puzzle unlock, day 1 is worth no points.
Kan je volgens mij zelfs maximaal 400 punten halen.

Tweakers Time Machine Browser Extension | Chrome : Firefox


Acties:
  • +1 Henk 'm!

  • BSTNjitRam
  • Registratie: November 2004
  • Laatst online: 11:26
ZpAz schreef op donderdag 3 december 2020 @ 10:41:
Heb ondertussen 6 sterren weten te bemachtigen, maar volgens mij is de leaderboard ook al een puzzel op zich, of op zijn minst lees ik iets verkeerds ofzo.
De100 punten max geldt enkel voor het Global leaderboard. Binnen een private leaderboard kan je meer dan 100 punten per ster scoren als er voldoende deelnemers aan het leaderboard zijn:
[Local Score], which awards users on this leaderboard points much like the global leaderboard. If you add or remove users, the points will be recalculated, and the order can change. For N users, the first user to get each star gets N points, the second gets N-1, and the last gets 1. This is the default.

Wishlist Backpack Survivors op Steam !


Acties:
  • 0 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 08:44

P_Tingen

omdat het KAN

[Local Score], which awards users on this leaderboard points much like the global leaderboard. If you add or remove users, the points will be recalculated, and the order can change. For N users, the first user to get each star gets N points, the second gets N-1, and the last gets 1. This is the default.
Wow, dus als je later in de challenge iemand toevoegt, dan kan die zo in één keer bovenaan staan.

... en gaat over tot de orde van de dag


Acties:
  • 0 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Laatst online: 18:10
Ben ik de enige hier die overdag moet werken? :+
Ik ga hier vanavond weer eens rustig naar kijken. Betekend dat ik ook niet in de top 100 ga komen.

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • 0 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 08:44

P_Tingen

omdat het KAN

WernerL schreef op donderdag 3 december 2020 @ 11:06:
Ben ik de enige hier die overdag moet werken? :+
Ik ga hier vanavond weer eens rustig naar kijken. Betekend dat ik ook niet in de top 100 ga komen.
Haha, nee, ik probeer het vaak een beetje tussendoor te doen. Als de opgaven niet al te groot zijn en het niet al te druk is dan lukt dat wel. Een ander staat per slot van rekening ook wel een paar keer per dag buiten te roken. Daarnaast neem ik ook niet echt een pauze dus dat half uur kan ik er ook aan besteden.

... en gaat over tot de orde van de dag


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
P_Tingen schreef op donderdag 3 december 2020 @ 11:03:
[...]

Wow, dus als je later in de challenge iemand toevoegt, dan kan die zo in één keer bovenaan staan.
Ja als die persoon wel eerder de sterren gehaald heeft. De tijd van vormen van de leader board of toevoegen van mensen heeft daar geen invloed op.

[ Voor 4% gewijzigd door Woy op 03-12-2020 11:11 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Osxy
  • Registratie: Januari 2005
  • Laatst online: 17:01

Osxy

Holy crap on a cracker

DRaakje schreef op donderdag 3 december 2020 @ 09:56:
[...]


Ja ik had dus wel de overflow, gelukkig meteen door wat het probleem was, vroeger had me dat weer 10 minuten gekost.

Ik zag dit
C#:
1
2
3
4
5
6
7
8
if (x + right > lineLength - 1)
      {
             x = right - (lineLength - x);
       }

en je kan daar modulo voor gebruiken.

array[index % maxlengte]
Cool, ja die kende ik nog niet.
#amateurDev #eigenlijkQA

"Divine Shields and Hearthstones do not make a hero heroic."


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 17:57

Creepy

Tactical Espionage Splatterer

Dag 3 viel me weer mee. Direct het juiste antwoord in beide gevallen.
P_Tingen schreef op donderdag 3 december 2020 @ 08:53:
spoiler:
Ja hier ook, ik kon deel 1 in een functie gooien met 2 parameters. Daardoor was deel 2 appeltje-eitje
Dat maakte deel 2 wel makkelijk ja.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • +1 Henk 'm!

  • Wesley
  • Registratie: Januari 2007
  • Laatst online: 28-05 19:51
ll roel j schreef op donderdag 3 december 2020 @ 09:41:
[...]


Dag 1, deel 2 heb ik inderdaad niet via Excel gedaan uiteindelijk maar met Notepad++ en calculator
Excel was wel mogelijk maar handmatig ging sneller ;)
Ah, check :)
Vandaag was ook wel weer goed te doen volledig in een sheet.
Hydra schreef op donderdag 3 december 2020 @ 00:01:
[...]


Nouja, mogelijk is het sowieso. Of je het wil doen is wat anders :P
Excel skills een beetje aanscherpen kan ook nuttig zijn ;)

Acties:
  • 0 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 12:44

Belindo

▶ ─🔘─────── 15:02

Dag 2 en 3 maar in Excel gedaan. Zowel de puzzel input als de omschrijving deed mij denken dat het daarin erg simpel zou zijn. En zo was het.

Bij dag drie was ik even in de war met de '2 down',
spoiler:
omdat ik dacht dat je nog steeds op rij 1 begon, zou de 2 down daarna rij 3 zijn, en dan rij 5, 7, 9, etc. Maar ze gaan er dus van uit dat de 2 down gelijk begint, en je dus op rij 2, 4, 6, etc. moet kijken.

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • P_Tingen
  • Registratie: Maart 2005
  • Laatst online: 08:44

P_Tingen

omdat het KAN

Belindo schreef op donderdag 3 december 2020 @ 11:45:
Dag 2 en 3 maar in Excel gedaan. Zowel de puzzel input als de omschrijving deed mij denken dat het daarin erg simpel zou zijn. En zo was het.

Bij dag drie was ik even in de war met de '2 down',
spoiler:
omdat ik dacht dat je nog steeds op rij 1 begon, zou de 2 down daarna rij 3 zijn, en dan rij 5, 7, 9, etc. Maar ze gaan er dus van uit dat de 2 down gelijk begint, en je dus op rij 2, 4, 6, etc. moet kijken.
Ik ben er juist van uit gegaan dat je op rij 1 moest beginnen, zo lees ik het ook:
Starting at the top-left corner of your map
Oplossing in Progress 4GL

... en gaat over tot de orde van de dag


Acties:
  • 0 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 12:44

Belindo

▶ ─🔘─────── 15:02

Apart, want als ik de bomen op rij 1, 3, 5, 7 etc. telde klopte mijn uitkomst niet. Wanneer ik die van 2, 4, 6, 8, etc. gebruikte was ie wel goed.

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • Wesley
  • Registratie: Januari 2007
  • Laatst online: 28-05 19:51
Belindo schreef op donderdag 3 december 2020 @ 12:03:
Apart, want als ik de bomen op rij 1, 3, 5, 7 etc. telde klopte mijn uitkomst niet. Wanneer ik die van 2, 4, 6, 8, etc. gebruikte was ie wel goed.
Vreemd :? ook hier begrepen als 1-3-5-7-... en zo toegepast om juist antwoord te krijgen.

Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 31-05 19:15

Dido

heforshe

WernerL schreef op donderdag 3 december 2020 @ 11:06:
Ben ik de enige hier die overdag moet werken? :+
Ik ga hier vanavond weer eens rustig naar kijken. Betekend dat ik ook niet in de top 100 ga komen.
Overdag werk, maar om half zeven was ik nog niet aan het werk :+

Wat betekent mijn avatar?


Acties:
  • 0 Henk 'm!

  • jelknab
  • Registratie: Oktober 2010
  • Laatst online: 19-05 11:45
Was nog steeds goed te doen vandaag :p

spoiler:
Ik had dus wel last van een integer overflow, dus toch maar de laatste stap een long laten teruggeven.


Oplossing in C#: https://github.com/jelkna...0Code%202020/Day3/Day3.cs

Acties:
  • +2 Henk 'm!

  • Hydra
  • Registratie: September 2000
  • Laatst online: 03-06 14:21
jelknab schreef op donderdag 3 december 2020 @ 12:10:
Was nog steeds goed te doen vandaag :p

spoiler:
Ik had dus wel last van een integer overflow, dus toch maar de laatste stap een long laten teruggeven.
spoiler:
Generieke AoC tip; altijd longs gebruiken als je moet gaan vermenigvuldigen. Dit gaat nog veel vaker voorkomen en is helemaal met opzet als extra 'gotcha'. En je ziet het niet altijd gebeuren als een getal 2 keer overflowed en dus weer positief is.

https://niels.nu


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 13:40

DataGhost

iPL dev

Belindo schreef op donderdag 3 december 2020 @ 12:03:
Apart, want als ik de bomen op rij 1, 3, 5, 7 etc. telde klopte mijn uitkomst niet. Wanneer ik die van 2, 4, 6, 8, etc. gebruikte was ie wel goed.
Wesley schreef op donderdag 3 december 2020 @ 12:07:
[...]

Vreemd :? ook hier begrepen als 1-3-5-7-... en zo toegepast om juist antwoord te krijgen.
Ik denk dat jullie 0- en 1-indexed door elkaar halen, en/of het startpunt. In 0-indexed: je start op 0,0, waar nooit een boom staat. Die reken je mee. Je hebt dan 0, 2, 4, 6... (in plaats van 2, 4, 6, 8...). Als je direct al op regel 1 begon vanwege het eerste deel (dus op punt 1,3), dan gaat het mis ja omdat je dan regels 1, 3, 5, 7... pakt.

Acties:
  • 0 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 12:44

Belindo

▶ ─🔘─────── 15:02

Wesley schreef op donderdag 3 december 2020 @ 12:07:
[...]

Vreemd :? ook hier begrepen als 1-3-5-7-... en zo toegepast om juist antwoord te krijgen.
Misschien dat ik het wel verkeerd begrijp hoor, en dat ik door dom geluk de oplossing heb gevonden. Plaatjes in de spoiler. Ik hoop dat jullie mij het kunnen uitleggen.

spoiler:
Afbeeldingslocatie: https://tweakers.net/i/mOO-6cUaypNNOOTm3L3DHzNazn8=/800x/filters:strip_exif()/f/image/pokLPB4GwWPkFaHqrkBQEW8p.png?f=fotoalbum_large
In kolom E (geel) heb ik de Right1Down1 al staan, deze kan ik dus hergebruiken voor de Right1Down2 in kolom J (groen). Hier heb ik simpel gezegd; als de rij even is, return dan niets, anders het karakter uit de 1Right1Down kolom. Dus rij 2, 4, 6, 8 etc. Deze geeft dan 43 bomen tegenover 34 wanneer ik naar de oneven rijen kijk.

Vervolgens is de uitkomst 218*77*65*82*43=3847183340 wat het juiste antwoord was:
Afbeeldingslocatie: https://tweakers.net/i/GHPmo8xwYsHFwJbRIYPsc9ZWEqg=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/J5pSJ8gDqx7sQbj3aK4LtdFM.png?f=user_large

Edit, het is een beetje warrig omdat de input natuurlijk op 'rij 1' begint, en mijn Excel table op rij 4. Dus het even/odd verhaal moet je even in relatie zien tot óf de map, óf de Excel table :)

[ Voor 6% gewijzigd door Belindo op 03-12-2020 12:25 ]

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • sgraaf
  • Registratie: December 2012
  • Laatst online: 04-06 22:10

Acties:
  • +1 Henk 'm!

  • Moofnor
  • Registratie: April 2010
  • Laatst online: 16:11

Moofnor

King of my castle

Belindo schreef op donderdag 3 december 2020 @ 12:20:
[...]

Misschien dat ik het wel verkeerd begrijp hoor, en dat ik door dom geluk de oplossing heb gevonden. Plaatjes in de spoiler. Ik hoop dat jullie mij het kunnen uitleggen.

spoiler:
[Afbeelding]
In kolom E (geel) heb ik de Right1Down1 al staan, deze kan ik dus hergebruiken voor de Right1Down2 in kolom J (groen). Hier heb ik simpel gezegd; als de rij even is, return dan niets, anders het karakter uit de 1Right1Down kolom. Dus rij 2, 4, 6, 8 etc. Deze geeft dan 43 bomen tegenover 34 wanneer ik naar de oneven rijen kijk.

Vervolgens is de uitkomst 218*77*65*82*43=3847183340 wat het juiste antwoord was:
[Afbeelding]

Edit, het is een beetje warrig omdat de input natuurlijk op 'rij 1' begint, en mijn Excel table op rij 4. Dus het even/odd verhaal moet je even in relatie zien tot óf de map, óf de Excel table :)
spoiler:
Je kunt niet de 1-1 kolom herbruiken voor 1-2, aangezien deze elke rij opschuift:
y :1-1 1-2
1 : 1 1
2 : 2
3 : 3 2
4 : 4
5 : 5 3

- I can accurately say I was born on Earth, but it's not very precise. I can precisely say I was born at latitude 37.229N, longitude 115.811W, but that is not at all accurate - Matt Parker


Acties:
  • +1 Henk 'm!

  • ThoNohT
  • Registratie: September 2006
  • Laatst online: 03-06 13:52
Dag 3 was ook weer goed te doen inderdaad. Wel integer overflow gehad eerst inderdaad. Daarna nog een verkeerde input omdat ik gewoon de verkeerde nummers in de input had gezet :P

Acties:
  • 0 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 12:44

Belindo

▶ ─🔘─────── 15:02

Moofnor schreef op donderdag 3 december 2020 @ 12:31:
[...]


spoiler:
Je kunt niet de 1-1 kolom herbruiken voor 1-2, aangezien deze elke rij opschuift:
y :1-1 1-2
1 : 1 1
2 : 2
3 : 3 2
4 : 4
5 : 5 3
Oh verrek, inderdaad. Maar dan is het puur toeval dat de uitkomst goed was :?

Coding in the cold; <brrrrr />


Acties:
  • 0 Henk 'm!

  • Wesley
  • Registratie: Januari 2007
  • Laatst online: 28-05 19:51
DataGhost schreef op donderdag 3 december 2020 @ 12:16:
[...]


[...]

Ik denk dat jullie 0- en 1-indexed door elkaar halen, en/of het startpunt. In 0-indexed: je start op 0,0, waar nooit een boom staat. Die reken je mee. Je hebt dan 0, 2, 4, 6... (in plaats van 2, 4, 6, 8...). Als je direct al op regel 1 begon vanwege het eerste deel (dus op punt 1,3), dan gaat het mis ja omdat je dan regels 1, 3, 5, 7... pakt.
Hoewel ik normaal altijd vloek op 1-indexed ging ik er vanuit dat we allebei 1-indexed aan het werken waren gezien we beiden in Excel bezig waren met effectieve rijen ;)
Belindo schreef op donderdag 3 december 2020 @ 12:35:
[...]

Oh verrek, inderdaad. Maar dan is het puur toeval dat de uitkomst goed was :?
Zie niet direct in waarom het dan inderdaad alsnog zou kloppen, maar zou wel heel toevallig zijn :?

Acties:
  • +1 Henk 'm!

  • Belindo
  • Registratie: December 2012
  • Laatst online: 12:44

Belindo

▶ ─🔘─────── 15:02

En toevallig was het 8)7

Ik heb de Right1Down2 opnieuw gedaan met de feedback van @Moofnor in het achterhoofd. Nu kom ik andere resultaten tegen (kolom L) dan de 1e poging (kolom J), maar het aantal 'bomen' is toevalligerwijs hetzelfde.

spoiler:
Afbeeldingslocatie: https://tweakers.net/i/uOJXO9zSkldYlTh9iWtNkaJF7Bg=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/JJqVEY46d7YVZXykoiAF3D2d.png?f=user_large


Echt puur stom geluk dus 😋

* Belindo gaat zich in een hoekje staan schamen

Coding in the cold; <brrrrr />


Acties:
  • +1 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
Hoewel ik het indrukwekkend vind dat mensen dit in Excel willen doen, huilt mijn ziel wel bij het zien van Excel en AoC ;)

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • 0 Henk 'm!

  • ydderf
  • Registratie: December 2017
  • Laatst online: 16:30
Hier ook dag drie voor elkaar. Eerst ff quick en dirty part twee gemaakt, daarna toch maar een functie gemaakt voor de slope afhandeling.

Soms gaat het niet zoals het moet, maar moet het maar zoals het gaat


Acties:
  • +1 Henk 'm!

  • com2,1ghz
  • Registratie: Oktober 2004
  • Laatst online: 10:33
O jeej, het is weer het moment van het jaar dat mijn programmeerego de grond in geboord wordt als ik naar de oplossingen kijk :+

Acties:
  • 0 Henk 'm!

  • breew
  • Registratie: April 2014
  • Laatst online: 17:04
hier in R aan de slag gegaan, met als uitgangspunt het data.table package.

tot nu tot nog geen problemen gehad.. dag 3 maar een functie voor geschreven met als input 2 vectoren (horizontale en verticale stapgrootte).. leuke opdrachten o<:)

spoiler:
###################
# PART 2
###################
DT <- fread( "./data/day03_input.txt", header = FALSE )
#repeat string 100 times
DT[, long := strrep( V1, 100 ) ]
#function
ans <- mapply( function(x, y) {
temp <- copy(DT)
temp <- temp[ seq(1, nrow(temp), y), ]
temp[, rowpos := .I ]
temp[, colpos := 1 + (rowpos - 1) * x ]
#build regex
temp[, regex := paste0( "^.{", colpos - 1, "}#" ) ]
#get if tree
temp[, tree := unlist( Map( grepl, regex, long, perl = TRUE ) ) ]
#answer
sum(temp$tree)
}, c(1,3,5,7,1), c(1,1,1,1,2) )
#[1] 60 286 76 62 45
prod(ans)
# [1] 3638606400

Acties:
  • 0 Henk 'm!

  • Rips10
  • Registratie: November 2008
  • Laatst online: 09-05 19:15
Weer een leuke puzzel om te maken, uiteraard kon ook dit jaar de integer overflow niet uitblijven :)

Oplossing in C# https://github.com/RTwToo...lob/main/aoc03/Program.cs

Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 15:33

MueR

Admin Tweakers Discord

is niet lief

Dagje 3 in PHP. Denk dat ik voor de lol ook nog maar in C# aan de gang ga, want daar doe ik te weinig mee..

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • +8 Henk 'm!

  • Reynouts
  • Registratie: Maart 2014
  • Niet online
Visualisatie van vandaag, console style
Woy schreef op donderdag 3 december 2020 @ 14:14:
@Reynouts props voor de visualisatie, het was leuk geweest als je het afgelegde path ook nog had kunnen zien, met highlights van de botsingen met bomen :)
Edit! ;)

[ Voor 61% gewijzigd door Reynouts op 04-12-2020 08:25 ]


Acties:
  • +1 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
@Reynouts props voor de visualisatie, het was leuk geweest als je het afgelegde path ook nog had kunnen zien, met highlights van de botsingen met bomen :)

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • +1 Henk 'm!

  • Nutral
  • Registratie: Mei 2005
  • Laatst online: 26-05 13:19

Nutral

gamer/hardware freak

Leuk concept, en voor mij leuk om een beetje te werken aan mijn python skills. Gebruikt het alleen af en toe voor losse berekeningen op werk.

Oplossing voor dag 3 https://github.com/xnutral/aoc20/blob/master/d3.py

Acties:
  • +2 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 13:40

DataGhost

iPL dev

Nutral schreef op donderdag 3 december 2020 @ 14:32:
Leuk concept, en voor mij leuk om een beetje te werken aan mijn python skills. Gebruikt het alleen af en toe voor losse berekeningen op werk.

Oplossing voor dag 3 https://github.com/xnutral/aoc20/blob/master/d3.py
Aangezien het een programmeeropdracht is, zou ik het zo schrijven dat aanpassen van de input geen nadelige gevolgen zou moeten hebben voor je programma. Zowel de test-input die in de tekst van de opdracht staat als je puzzel-input moeten met dezelfde code opgelost worden. Hardcoden brengt je alleen maar dichter in de buurt van een handmatige oplossing met pen en papier. Ook vraag ik me af waarom je yaml gebruikt, dat lijkt me een heftig overbodige omweg zeker in Python. Het is veel makkelijker om de input in te lezen zoals 'ie is. Alle opdrachten hebben twee delen, jouw oplossingen lijken maar slechts 1 van de delen op te kunnen lossen, is dat de bedoeling?

In dit geval heeft het hardcoden het volgens mij juist veel moeilijker gemaakt om deel 2 lekker op te lossen. Bij mij gebruiken deel 1 en 2 dezelfde code, alleen de functie-aanroep is anders. Je kan er elke kaart in gooien die je wilt, gewoon 1:1 als tekstbestand zoals die te downloaden is van de AoC-site. Het "netjes uitprogrammeren" ipv hardcoden gaat je volgens mij in volgende opdrachten behoorlijk helpen. Nu is het bijvoorbeeld maar 1 "kaart", het kan best zijn dat er deze maand nog een soortgelijke opdracht langskomt met meerdere die verschillende groottes hebben.

Mijn code is zoiets als dit:
spoiler:
Afbeeldingslocatie: https://tweakers.net/i/XF5b7cv9WxPqa5_gq1Jhtnkzb4c=/full-fit-in/4000x4000/filters:no_upscale():fill(white):strip_exif()/f/image/qxMsSuUyC0VWH90dBCw4s9ri.png?f=user_large

[ Voor 48% gewijzigd door DataGhost op 03-12-2020 15:25 ]


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Nice, ik zou alleen de # die gehit zijn nog rood maken i.p.v. groen, zodat het duidelijker opvalt :+

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Nutral
  • Registratie: Mei 2005
  • Laatst online: 26-05 13:19

Nutral

gamer/hardware freak

DataGhost schreef op donderdag 3 december 2020 @ 15:07:
[...]

Aangezien het een programmeeropdracht is, zou ik het zo schrijven dat aanpassen van de input geen nadelige gevolgen zou moeten hebben voor je programma. Zowel de test-input die in de tekst van de opdracht staat als je puzzel-input moeten met dezelfde code opgelost worden. Hardcoden brengt je alleen maar dichter in de buurt van een handmatige oplossing met pen en papier. Ook vraag ik me af waarom je yaml gebruikt, dat lijkt me een heftig overbodige omweg zeker in Python. Het is veel makkelijker om de input in te lezen zoals 'ie is. Alle opdrachten hebben twee delen, jouw oplossingen lijken maar slechts 1 van de delen op te kunnen lossen, is dat de bedoeling?

In dit geval heeft het hardcoden het volgens mij juist veel moeilijker gemaakt om deel 2 lekker op te lossen. Bij mij gebruiken deel 1 en 2 dezelfde code, alleen de functie-aanroep is anders. Je kan er elke kaart in gooien die je wilt, gewoon 1:1 als tekstbestand zoals die te downloaden is van de AoC-site. Het "netjes uitprogrammeren" ipv hardcoden gaat je volgens mij in volgende opdrachten behoorlijk helpen. Nu is het bijvoorbeeld maar 1 "kaart", het kan best zijn dat er deze maand nog een soortgelijke opdracht langskomt met meerdere die verschillende groottes hebben.

Mijn code is zoiets als dit:
spoiler:
In eerste instantie had ik gewoon door de vragen heengewerkt en aangepast voor het 2e deel. Maar de volgende ga ik beide oplossingen in de zelfde code houden. het is inderdaad makkelijker om er een functie voor te schrijven.
Yaml gebruikte ik omdat ik er een beetje mee aan het experimenteren ben in een ander programma, maar het voegt hier eigenlijk niks toe.

Vond het eigenlijk al verrassend dat na het draaien ook in een keer de juiste getallen had op de website. Als werktuigbouwer heb ik erg de neiging om maar even het programma opnieuw te draaien met een rekenmachientje :P

Acties:
  • +6 Henk 'm!

  • estomagordo
  • Registratie: December 2020
  • Laatst online: 04-12-2020
Hello all.

A resident of the Netherlands, but not yet very versed in the language. Thought I'd try and stick around and see if I can at least follow your discussions :)

Acties:
  • +2 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Laatst online: 18:10
Mijn oplossing voor dag 3: https://github.com/WernerLDev/AOC2020/tree/main/src/03

Was wederom makkelijk om te doen.

//edit
Ben ik de enige die het grid als 1D-array heeft gedefinieerd? :+
Ik kwam dit truukje ooit in een youtube-video tegen. Met row * width + col kun je de index uitrekenen in een 1 dimensionale array zodat je hem op die manier kunt gebruiken als 2d-array.

[ Voor 52% gewijzigd door WernerL op 03-12-2020 19:25 ]

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • 0 Henk 'm!

  • Caelorum
  • Registratie: April 2005
  • Laatst online: 13:54
@WernerL was ik alweer vergeten. Zelfs niet eens modulo gebruikt ^_^

Acties:
  • 0 Henk 'm!

  • _Mithrandir
  • Registratie: December 2002
  • Laatst online: 26-11-2024

_Mithrandir

tOOt TooT

Mijn oplossing voor dag 3 staat ook online https://github.com/Gerben..._2020/tree/master/Day%203

Ik vind dat ik de opdrachten nog aardig snel oplos in python. Ik ben pas 2 weken op aan het studeren. :)

Maar van oplossingen van anderen in python snap ik nog niet eens wat er gebeurd :|

At dawn on the fifth day look to the east


Acties:
  • +1 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
@WernerL waarom zou je dat jezelf aandoen? Veel performance zal het niet schelen, access van een multi dimensionaal array wordt waarschijnlijk door de compiler al omgeschreven naar dezelfde manier van access.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Laatst online: 18:10
@Woy In dit geval vooral omdat het kan. Niet bij stil gestaan dat dit een optimalisatie is die al door de compiler gebeurd eerlijk gezegd. Het zijn maar puzzels, geen productiecode dus maakt het mogelijk een beetje te experimenteren.

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • +1 Henk 'm!

  • Down
  • Registratie: Februari 2005
  • Laatst online: 18:28
Dag 3 voor de afwisseling een keertje in JS i.p.v. C#

Met AoC probeer ik het altijd een beetje functioneel in te steken.

Voor part 2 hoefde ik overigens geen rekening te houden met overflows. One size fits all :+

Mother north, how can they sleep while their beds are burning?


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
@WernerL het is ook geen verwijt, en uitproberen moet je zeker doen. Maar het is wel handig om te weten wat het verschil is, want anders is het meestal beter om voor de best leesbare optie te kiezen.

Een array van pointers naar arrays zal bijvoorbeeld waarschijnlijk wel langzamer zijn, aangezien daar een extra stap van indirectie is. Een multidimensionale array kan gewoon een gedefinieerde vorm van het accessen van een blok geheugen zijn, vergelijkbaar met wat jij zelf doet.

Disclaimer: het is natuurlijk wel taal afhankelijk hoe het geïmplementeerd is, dus in jouw geval zou ik het ook niet 100% zeker weten ;) meten is weten. In C is dat bij een statisch gedefinieerde array wel zo, in C# heb je het verschil tussen een multidimensionale array array[x,y] en arrays van arrays array[x][y].

Ik heb gewoon een array van strings gebruikt, waar de string eigenlijk ook gewoon weer een array is natuurlijk. Het converteren naar wat anders kost waarschijnlijk meer tijd dan er gewoon direct over itereren :+

[ Voor 37% gewijzigd door Woy op 03-12-2020 20:31 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 11:08

Dricus

ils sont fous, ces tweakers

Ik ben gisteren ook maar eens begonnen. Ik had nog nooit meegedaan, en ik vind het een leuk tijdverdrijf tot nu toe. De eerste 3 puzzels vond ik heel goed te doen. De laatste tijd ben ik veel met Kotlin bezig, dus dat heb ik gebruikt.

Mijn code:

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • WernerL
  • Registratie: December 2006
  • Laatst online: 18:10
Woy schreef op donderdag 3 december 2020 @ 20:09:
@WernerL het is ook geen verwijt, en uitproberen moet je zeker doen. Maar het is wel handig om te weten wat het verschil is, want anders is het meestal beter om voor de best leesbare optie te kiezen.

Een array van pointers naar arrays zal bijvoorbeeld waarschijnlijk wel langzamer zijn, aangezien daar een extra stap van indirectie is. Een multidimensionale array kab gewoon een gedefinieerde vorm van het accessen van een blok geheugen zijn, vergelijkbaar met wat jij zelf doet.

Disclaimer: het is natuurlijk wel taal afhankelijk hoe het geïmplementeerd is, dus in jouw geval zou ik het ook niet 100% zeker weten ;) meten is weten. In C is dat bij een statisch gedefinieerde array wel zo, in C# heb je het verschil tussen een multidimensionale array array[x,y] en arrays van arrays array[x][y].

Ik heb gewoon een array van strings gebruikt, waar de string eigenlijk ook gewoon weer een array is natuurlijk. Het converteren naar wat anders kost waarschijnlijk meer tijd dan er gewoon direct over itereren :+
Heb even wat verder gezocht en het schijnt soms wel een verschil te kunnen maken. Maar in mijn geval inderdaad waarschijnlijk niet. In JavaScript kan een string ook gewoon als array gebruikt worden.

Ik kwam toevallig op stackoverflow nog een uitgebreide reactie tegen: https://stackoverflow.com...-or-2d-array-whats-faster

Dus it depends.

Goed, weer iets geleerd in ieder geval. :)

Roses are red, violets are blue, unexpected '{' on line 32.


Acties:
  • 0 Henk 'm!

  • com2,1ghz
  • Registratie: Oktober 2004
  • Laatst online: 10:33
Hmm ik was net klaar met dag 3 deel 1.
Deel 2 zou peanuts zijn. Althans dat dacht ik.

Ik heb hetzelfde uitkomst met de korte voorbeeld data dump zoals in de opdracht staat beschreven. Echter met de echte data dan klopt de waarde niet.
That's not the right answer; your answer is too low. If you're stuck, make sure you're using the full input data; there are also some general tips on the about page, or you can ask for hints on the subreddit. Please wait one minute before trying again. (You guessed 90209024.) [Return to Day 3]
Wat gaat hier fout?

https://github.com/com2gh...main/kotlin/day3/Part2.kt

Acties:
  • +1 Henk 'm!

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 05-06 10:49

Varienaja

Wie dit leest is gek.

Wat er bij ons allemaal fout ging: Past x1 * x2 * x3 * x4 * x5 in 32 bits?

Siditamentis astuentis pactum.


Acties:
  • +1 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
WernerL schreef op donderdag 3 december 2020 @ 20:32:
[...]
Ik kwam toevallig op stackoverflow nog een uitgebreide reactie tegen: https://stackoverflow.com...-or-2d-array-whats-faster
Ja, dat is specifiek voor C(++), en dan ook specifiek over dynamische arrays, dat is nog weer een ander verhaal dan met statische arrays ;)

Vandaar inderdaad de disclaimer. Moraal is vooral dat je goed moet weten wat het verschil is om te kunnen bepalen of het nut heeft. Dus je moet het met realistische data meten, of in depth kennis hebben. Standaard zou ik gewoon voor de best leesbare versie kiezen totdat je gegronde reden hebt om het anders te doen ;)

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • +1 Henk 'm!

  • com2,1ghz
  • Registratie: Oktober 2004
  • Laatst online: 10:33
Varienaja schreef op donderdag 3 december 2020 @ 20:52:
[...]

Wat er bij ons allemaal fout ging: Past x1 * x2 * x3 * x4 * x5 in 32 bits?
Godver... :P

Werkt inderdaad. Danku!

Acties:
  • 0 Henk 'm!

  • ZieglerNichols
  • Registratie: Mei 2015
  • Niet online
Was deze al voorbij gekomen voor de nieuwe AoC deelnemers dit jaar? : https://chrome.google.com...bokofodhhjpipflmdplipblbe

Is een mooie Chrome plugin om meer info over de private leaderboards te krijgen!

Acties:
  • 0 Henk 'm!

  • Mschamp
  • Registratie: April 2014
  • Laatst online: 17:21
ZieglerNichols schreef op donderdag 3 december 2020 @ 21:29:
Was deze al voorbij gekomen voor de nieuwe AoC deelnemers dit jaar? : https://chrome.google.com...bokofodhhjpipflmdplipblbe

Is een mooie Chrome plugin om meer info over de private leaderboards te krijgen!
Neen, die kende ik nog niet

Acties:
  • +1 Henk 'm!

  • Varienaja
  • Registratie: Februari 2001
  • Laatst online: 05-06 10:49

Varienaja

Wie dit leest is gek.

O.M.G. Wat een opgave... ik heb m'n code nog niet gepushed, want het is nog een rommeltje. Ik heb nog wel wat tijd nodig voor een presentabele oplossing. Eerst maar eens aankleden, ontbijten en de kinderen klaar maken voor school.

Ik heb veel tijd verknooid door de laatste lege regel van de input weg te smijten bij het kopiëren. :-( Zo kwam ik steeds op 212 geldige paspoorten in plaats van 213.

[ Voor 27% gewijzigd door Varienaja op 04-12-2020 08:11 ]

Siditamentis astuentis pactum.


Acties:
  • 0 Henk 'm!

  • Dido
  • Registratie: Maart 2002
  • Laatst online: 31-05 19:15

Dido

heforshe

Varienaja schreef op vrijdag 4 december 2020 @ 06:55:
O.M.G. Wat een opgave... ik heb m'n code nog niet gepushed, want het is nog een rommeltje. Ik heb nog wel wat tijd nodig voor een presentabele oplossing. Eerst maar eens aankleden, ontbijten en de kinderen klaar maken voor school.
Dit lijkt op "shit dat scherm moet om 9 uur live, maar iemand is vergeten de validaties in te bouwen. Doe jij dat nog even voordat de gebruikers inloggen?"

En dan hopen dat je je technical debt volgende sprint op de backlog krijgt :X

Wat betekent mijn avatar?


Acties:
  • +1 Henk 'm!

  • armageddon_2k1
  • Registratie: September 2001
  • Laatst online: 25-04 18:21
Nou, deze viel wel mee. Was vooral goed lezen.
Ik wil het nog opschonen... maarja.

https://github.com/rj-cod.../rjcoding/aoc2020/Day4.kt

spoiler:
Ik heb alleen een hekel aan regex en dus zo min mogelijk gedaan. Ik denk dat ik dat toch beter onder de knie moet krijgen. Aan de andere kant is het niet zo triviaal als het lijkt en misschien juist een valstrik om je in te ontlokken alles in 1 regex te doen.

[ Voor 16% gewijzigd door armageddon_2k1 op 04-12-2020 08:09 ]

Engineering is like Tetris. Succes disappears and errors accumulate.


Acties:
  • +2 Henk 'm!

  • ElkeBxl
  • Registratie: Oktober 2014
  • Laatst online: 16-05 11:22

ElkeBxl

Tassendraagster

That's not the right answer; your answer is too low. Curiously, it's the right answer for someone else; you might be logged in to the wrong account or just unlucky.
Een goed begin van de dag 8)7 Ik zie dus iets over het hoofd...

Without nipples, boobs are pointless - 365 project - In mijn hoofd is het alle dagen Kerstmis - What type of bees make milk? Boobies! - What type of bees are scary? BoooOOOOOooobeees! - Cactusliefhebster


Acties:
  • +1 Henk 'm!

  • Dricus
  • Registratie: Februari 2002
  • Laatst online: 11:08

Dricus

ils sont fous, ces tweakers

Leuk om ook nog andere Kotlin oplossingen te zien!

Dit is de mijne van dag 4: https://github.com/Dricus...tofcode/year2020/Day04.kt

Ik vond hem weer heel goed te doen. En Kotlin begin ik steeds meer te waarderen, vooral omdat je er zo heerlijk functional-style mee kunt programmeren!

Stel niet uit tot morgen wat je vandaag nog tot morgen kunt uitstellen...


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Het was weer een redelijk eenvoudige opdracht, wel iets meer werk om het netjes te doen.

https://github.com/rverst.../blob/main/Y2020/Day04.cs

Er zijn nog wel wat verbeteringen te doen, maar op zich is het wel acceptabele leesbare code.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Down
  • Registratie: Februari 2005
  • Laatst online: 18:28
Dricus schreef op vrijdag 4 december 2020 @ 08:20:
Leuk om ook nog andere Kotlin oplossingen te zien!

Dit is de mijne van dag 4: https://github.com/Dricus...tofcode/year2020/Day04.kt

Ik vond hem weer heel goed te doen. En Kotlin begin ik steeds meer te waarderen, vooral omdat je er zo heerlijk functional-style mee kunt programmeren!
Ik ben niet zo thuis in de Java wereld, maar heeft Java die functionaliteit niet? Of werkt het gewoon niet zo goed?

Mother north, how can they sleep while their beds are burning?


Acties:
  • 0 Henk 'm!

  • Mschamp
  • Registratie: April 2014
  • Laatst online: 17:21
Ik moet iets dom over het hoofd zin: part 1 lukt, de 2 voorbeelden voor part 2 lukken, maar resultaat van test 2 klopt niet. Vandaag is het niet door integer overflow
Pagina: 1 2 ... 14 Laatste