Jammer dat ik het nu pas lees, had het wel leuk gevonden om het ook te proberen.
Maar goed, ik zat een beetje te lezen door de oplossingen, met name van billboard, welke door de meeste als lastigste werd ervaren. Nu zie ik eigenlijk bij de meeste oplossingen mensen testen vanaf font-size 1 tot het maximum. Oftewel testen tot het niet meer past.
Waar ik nu benieuwd naar ben, is er iemand die andersom heeft geredeneerd? Dus eerst het absolute maximum bepalen en terug rekenen naar de eerste die wel past?
Toen ik namelijk de probleem stelling las en daaruit begreep dat de fontheight gelijk zou staan aan de fontwidth kwam ik op het volgende idee:
Als ik nu de gegeven width * height doe en deel door lengte van de input en van het resultaat de wortel neem, dan heb ik afgerond de absolute maximale size van het font op het gegeven billboard en de gegeven input, waarbij ik geen rekening houd met het niet mogen breken van woorden.
Het niet breken van woorden heeft m.i. altijd tot gevolg dat de fontsize lager uitvalt omdat je 'inefficient' met de ruimte om gaat. Dus je werkelijke max size op basis van de probleemstelling ( woorden mogen niet gebroken worden ) valt dan volgens mij dan altijd lager uit?
Als ik bovenstaande 'formule': sqrt((width*height)/length) gebruik op de voorbeelden van hier:
http://pastebin.com/jPHiJRBa
20 6 hacker cup
100 20 hacker cup 2013
10 20 MUST BE ABLE TO HACK
55 25 Can you hack
100 20 Hack your way to the cup
Geeft me dat als absolute max ( afgerond per case:
sqrt((20*6)/10) = 3, uiteindelijke antwoord 3
sqrt((100*20)/15)= 11, uiteindelijke antwoord 10
sqrt((10*20)/20)= 3, uiteindelijk antwoord 2
sqrt((55*25)/12)= 10, uiteindelijke antwoord 8
sqrt((100*20)/24)=9, uiteindelijke antwoord 7
Hiermee neemt je aantal itteraties af en zeker met grote(re) billboards heb je dan sneller je oplossing. Nu weet ik eerlijk gezegd niet of snelheid een eis was, maar vond het wel een leuke probleemstelling om eens te bekijken.
En ik ben dus, zoals gezegd, benieuwd of iemand dit als de basis van zijn oplossing heeft gebruikt?
( Ik zie nu een oplossing waar iemand het in ieder geval deels zo doet

even verder lezen hoe hij het oplost )
i5-12600K PRIME Z690M-PLUS D4 64GB 980 Pro M.2 1TB MBA M1 13" 8GB 256GB (Late '20)