diff --git a/day-05/part-1/inputs/ludoge.txt b/day-05/part-1/inputs/ludoge.txt new file mode 100644 index 0000000..ad885d1 --- /dev/null +++ b/day-05/part-1/inputs/ludoge.txt @@ -0,0 +1,1097 @@ +2 +0 +-1 +0 +-2 +-2 +0 +-5 +-6 +1 +-4 +-3 +1 +-2 +-4 +-9 +-4 +-5 +-10 +-10 +-17 +-8 +-17 +-17 +-10 +-18 +-12 +-21 +-1 +-22 +-4 +-24 +-2 +-16 +-8 +-6 +-33 +1 +-2 +-5 +-35 +-20 +-26 +-9 +-15 +-14 +-33 +-24 +-8 +2 +-13 +-25 +-45 +-44 +-32 +-50 +-27 +-56 +-56 +-16 +-26 +-8 +-13 +-41 +-48 +-59 +-59 +-34 +-7 +-56 +-8 +-49 +-11 +-16 +-25 +-11 +-4 +-31 +-22 +-12 +-68 +-7 +-13 +0 +-12 +-8 +-59 +-73 +-68 +-78 +-46 +-37 +-87 +-63 +-61 +-81 +-83 +-72 +-1 +-36 +-75 +-33 +-31 +-76 +-25 +-15 +-15 +-74 +-74 +-37 +-46 +-82 +-110 +-66 +-60 +-104 +-61 +-55 +0 +-109 +-16 +-63 +-118 +-109 +-25 +-96 +-124 +-7 +-20 +-36 +-68 +-38 +-71 +-106 +-7 +-14 +-96 +-117 +-109 +-107 +-112 +-46 +-116 +-128 +-18 +-87 +-20 +-121 +-121 +0 +-115 +-89 +0 +-12 +-124 +-24 +-18 +-124 +-44 +-99 +-10 +-63 +-103 +-45 +-54 +-99 +-101 +-96 +0 +-50 +-143 +-18 +-55 +-78 +-31 +-40 +-62 +-176 +-137 +-5 +-135 +-36 +-52 +-97 +-29 +-16 +-12 +-108 +-64 +-29 +-65 +-128 +-113 +-21 +-135 +-126 +-163 +-51 +-61 +-177 +-52 +-26 +-151 +-142 +-98 +-203 +-178 +-175 +-81 +-110 +-201 +-150 +-104 +-117 +-165 +-4 +-96 +-9 +-118 +-123 +-156 +-39 +-122 +-59 +-223 +-9 +-14 +-53 +-191 +-23 +-171 +-7 +-131 +-2 +-225 +-20 +-66 +-225 +-203 +-41 +-122 +-159 +-222 +-96 +-134 +-191 +-105 +-78 +-139 +-225 +-164 +-109 +-178 +-186 +-24 +-161 +-125 +-214 +-199 +-152 +-172 +-102 +-217 +-15 +-60 +-148 +-173 +-10 +-258 +-119 +-9 +-11 +-6 +-53 +-220 +-57 +-123 +-62 +-172 +-80 +-200 +-236 +-255 +-61 +-199 +-165 +-277 +-32 +-169 +-108 +-86 +-137 +2 +-96 +-204 +-269 +-181 +-96 +-166 +-271 +-235 +-75 +-245 +-6 +-95 +-130 +-303 +-55 +-227 +-266 +-82 +-298 +-135 +-272 +-311 +-311 +-86 +-198 +-41 +-147 +-169 +-91 +-65 +-122 +-293 +-149 +-218 +-325 +-292 +-136 +-119 +-100 +-290 +-48 +-257 +-282 +-199 +-67 +-262 +-75 +-274 +-136 +-87 +-123 +-61 +-258 +-117 +-93 +-113 +-250 +-225 +-250 +-135 +-342 +-304 +-153 +-114 +-335 +-327 +-276 +-119 +-35 +-75 +-239 +-140 +-199 +-354 +-94 +-51 +-176 +-35 +-121 +2 +-51 +-80 +-116 +-69 +-282 +-180 +-10 +-103 +-172 +-332 +-158 +-95 +-365 +-358 +-69 +-263 +-75 +-74 +-1 +-236 +-28 +-311 +-364 +-275 +-333 +-52 +-376 +-156 +-310 +-276 +-160 +-218 +-341 +-78 +-184 +-14 +-291 +-279 +-248 +0 +-199 +-252 +-221 +-23 +-371 +-39 +-355 +0 +-211 +-151 +-34 +-209 +-310 +-215 +-76 +-398 +-21 +-206 +-339 +-147 +-47 +-70 +-105 +-340 +-128 +-321 +-101 +-225 +-425 +-248 +-117 +-437 +-379 +-196 +-262 +-236 +-365 +-217 +-213 +-70 +-406 +-414 +-425 +-332 +-13 +-120 +-238 +-238 +-110 +-224 +-116 +-414 +-419 +-309 +-121 +-104 +-9 +-406 +-82 +-72 +-249 +-432 +-380 +-14 +-388 +-403 +-249 +-349 +-480 +-118 +-243 +-285 +1 +-126 +-33 +-99 +-241 +-151 +-329 +-64 +-63 +-120 +-75 +-255 +-118 +-177 +-138 +-451 +-306 +-245 +-33 +-55 +-90 +-212 +-301 +-168 +-363 +-314 +-417 +-385 +-52 +-497 +-131 +-71 +-134 +-69 +-138 +-141 +-347 +-358 +-505 +-294 +-288 +-432 +-234 +-439 +-112 +-260 +-31 +-273 +-86 +-362 +-237 +-369 +-442 +-402 +-453 +-30 +-171 +-33 +-170 +-20 +-539 +-93 +-456 +-240 +-10 +-344 +-150 +-262 +-417 +-421 +-44 +-15 +-51 +-69 +-268 +-290 +-344 +-196 +-556 +-519 +-242 +-197 +-546 +-99 +-377 +-225 +-113 +-138 +-120 +-263 +-170 +-452 +-405 +-376 +-551 +-190 +-9 +-224 +-110 +-183 +-454 +-212 +-55 +-264 +-348 +-510 +-152 +-71 +-356 +-424 +-233 +-234 +-10 +-524 +-76 +-251 +-456 +-578 +-348 +-176 +-406 +-173 +-160 +-603 +-129 +-558 +-106 +-535 +-465 +-310 +-569 +-302 +-504 +0 +-175 +-59 +-485 +-586 +-88 +-136 +-524 +-164 +-55 +-150 +-191 +-40 +-552 +-386 +-217 +-119 +-250 +-448 +-357 +-485 +-623 +-412 +-202 +-266 +-55 +-256 +-169 +-327 +-165 +-101 +-550 +-434 +-176 +-152 +-518 +-624 +-374 +-305 +-370 +-304 +-362 +-109 +-277 +-53 +-318 +-574 +-338 +-276 +-620 +-306 +-499 +-77 +-122 +-329 +-156 +-654 +-576 +-79 +-498 +-9 +-15 +-445 +-415 +-491 +-641 +-104 +-600 +-126 +-156 +0 +-70 +-271 +-162 +0 +-640 +-505 +-261 +0 +-476 +-555 +-130 +-423 +-360 +-138 +-457 +-674 +-303 +-624 +-513 +-566 +-405 +-406 +-632 +-177 +-66 +-277 +-445 +-117 +-628 +-452 +-156 +-535 +-254 +-44 +-466 +-142 +-414 +-473 +-201 +-85 +-336 +-660 +-607 +-376 +-367 +-582 +-619 +-499 +-89 +-232 +-708 +-731 +-215 +-72 +-159 +-278 +-53 +-257 +-104 +-7 +-745 +-403 +-534 +-17 +-520 +-510 +-353 +-504 +-578 +-729 +-139 +-271 +-181 +-134 +-475 +-251 +-490 +-205 +-675 +-112 +-753 +-256 +-485 +-234 +-654 +-403 +-450 +-658 +-172 +-675 +-54 +-169 +-230 +-1 +-436 +-108 +-660 +-289 +-367 +-314 +-68 +-572 +-586 +-369 +-145 +-543 +-756 +-78 +-490 +-785 +-180 +2 +-424 +-159 +-727 +-235 +-645 +-28 +-282 +-489 +-250 +-71 +-682 +-711 +-398 +-55 +-328 +-182 +-166 +-743 +-388 +-334 +-432 +-729 +-360 +-471 +-16 +-602 +-709 +-69 +-269 +-791 +-489 +-322 +-646 +-301 +-159 +-268 +-777 +-456 +-746 +-356 +-809 +-728 +-90 +-302 +-386 +-728 +-656 +-29 +-101 +-728 +-82 +-406 +-675 +-62 +-160 +-617 +-125 +-698 +-120 +-655 +-751 +-284 +-475 +-16 +-420 +-574 +-638 +-38 +-573 +-623 +-747 +-115 +-430 +-591 +-832 +-422 +-40 +-212 +-564 +-71 +-513 +-623 +-503 +-189 +-256 +-728 +-655 +-580 +-508 +-382 +-883 +-885 +-480 +-117 +-407 +-253 +-635 +-244 +-101 +-847 +-857 +-205 +-119 +-756 +-302 +-169 +-277 +-521 +-586 +-472 +-880 +-580 +-825 +-428 +-248 +-846 +-226 +-621 +-413 +-302 +-161 +-177 +-601 +-830 +-275 +-700 +-922 +0 +-897 +-764 +-151 +-343 +-10 +-601 +-772 +-574 +-478 +-791 +-244 +-4 +-927 +-601 +-686 +-109 +-786 +-224 +-409 +-725 +-411 +-692 +-886 +-667 +-767 +-773 +-623 +-868 +-319 +-739 +-36 +-309 +-634 +-240 +-790 +-711 +-426 +-426 +-860 +-227 +-677 +-67 +-567 +-621 +-714 +-430 +-914 +-335 +-601 +-205 +-475 +-737 +-60 +-28 +-19 +-221 +-660 +-386 +-67 +-474 +-49 +-488 +-207 +-209 +-178 +-889 +-370 +-180 +-232 +-709 +-861 +-359 +-372 +-591 +-80 +-709 +-340 +-441 +-116 +-156 +-525 +-687 +-604 +-31 +-303 +-425 +-650 +-642 +-606 +-626 +-332 +-26 +-126 +-846 +-672 +-74 +-201 +-256 +-660 +-342 +-184 +-1008 +-196 +-757 +-522 +-293 +-241 +-662 +-655 +-617 +-810 +-943 +-295 +-506 +-904 +-1038 +-966 +-259 +-1025 +-448 +-597 +-210 +-45 +-533 +-48 +-943 +-618 +1 +-697 +-1049 +-607 +-668 +-164 +-751 +-722 +-940 +-381 +-194 +-671 +-336 +-738 +-712 +-390 +-352 +-35 +-470 +-737 +-715 +-663 +-549 +-598 +-707 +-135 +-277 +-470 +-225 +-742 +-1010 +-10 +-134 +0 +-724 +-811 +-758 +-869 +-1029 +-567 +-889 \ No newline at end of file diff --git a/day-05/part-1/ludoge.py b/day-05/part-1/ludoge.py new file mode 100644 index 0000000..8ef1493 --- /dev/null +++ b/day-05/part-1/ludoge.py @@ -0,0 +1,21 @@ +from submission import Submission + + +class LudogeSubmission(Submission): + + def run(self, s): + # :param s: input in string format + # :return: solution flag + # your solution code goes here + offsets = [int(x) for x in s.split()] + i=0 + steps=0 + while True: + offsets[i]+=1 + steps+=1 + if i+offsets[i]-1>=len(offsets): + return steps + else: + i+=offsets[i]-1 + pass + diff --git a/day-05/part-2/inputs/ludoge.txt b/day-05/part-2/inputs/ludoge.txt new file mode 100644 index 0000000..ad885d1 --- /dev/null +++ b/day-05/part-2/inputs/ludoge.txt @@ -0,0 +1,1097 @@ +2 +0 +-1 +0 +-2 +-2 +0 +-5 +-6 +1 +-4 +-3 +1 +-2 +-4 +-9 +-4 +-5 +-10 +-10 +-17 +-8 +-17 +-17 +-10 +-18 +-12 +-21 +-1 +-22 +-4 +-24 +-2 +-16 +-8 +-6 +-33 +1 +-2 +-5 +-35 +-20 +-26 +-9 +-15 +-14 +-33 +-24 +-8 +2 +-13 +-25 +-45 +-44 +-32 +-50 +-27 +-56 +-56 +-16 +-26 +-8 +-13 +-41 +-48 +-59 +-59 +-34 +-7 +-56 +-8 +-49 +-11 +-16 +-25 +-11 +-4 +-31 +-22 +-12 +-68 +-7 +-13 +0 +-12 +-8 +-59 +-73 +-68 +-78 +-46 +-37 +-87 +-63 +-61 +-81 +-83 +-72 +-1 +-36 +-75 +-33 +-31 +-76 +-25 +-15 +-15 +-74 +-74 +-37 +-46 +-82 +-110 +-66 +-60 +-104 +-61 +-55 +0 +-109 +-16 +-63 +-118 +-109 +-25 +-96 +-124 +-7 +-20 +-36 +-68 +-38 +-71 +-106 +-7 +-14 +-96 +-117 +-109 +-107 +-112 +-46 +-116 +-128 +-18 +-87 +-20 +-121 +-121 +0 +-115 +-89 +0 +-12 +-124 +-24 +-18 +-124 +-44 +-99 +-10 +-63 +-103 +-45 +-54 +-99 +-101 +-96 +0 +-50 +-143 +-18 +-55 +-78 +-31 +-40 +-62 +-176 +-137 +-5 +-135 +-36 +-52 +-97 +-29 +-16 +-12 +-108 +-64 +-29 +-65 +-128 +-113 +-21 +-135 +-126 +-163 +-51 +-61 +-177 +-52 +-26 +-151 +-142 +-98 +-203 +-178 +-175 +-81 +-110 +-201 +-150 +-104 +-117 +-165 +-4 +-96 +-9 +-118 +-123 +-156 +-39 +-122 +-59 +-223 +-9 +-14 +-53 +-191 +-23 +-171 +-7 +-131 +-2 +-225 +-20 +-66 +-225 +-203 +-41 +-122 +-159 +-222 +-96 +-134 +-191 +-105 +-78 +-139 +-225 +-164 +-109 +-178 +-186 +-24 +-161 +-125 +-214 +-199 +-152 +-172 +-102 +-217 +-15 +-60 +-148 +-173 +-10 +-258 +-119 +-9 +-11 +-6 +-53 +-220 +-57 +-123 +-62 +-172 +-80 +-200 +-236 +-255 +-61 +-199 +-165 +-277 +-32 +-169 +-108 +-86 +-137 +2 +-96 +-204 +-269 +-181 +-96 +-166 +-271 +-235 +-75 +-245 +-6 +-95 +-130 +-303 +-55 +-227 +-266 +-82 +-298 +-135 +-272 +-311 +-311 +-86 +-198 +-41 +-147 +-169 +-91 +-65 +-122 +-293 +-149 +-218 +-325 +-292 +-136 +-119 +-100 +-290 +-48 +-257 +-282 +-199 +-67 +-262 +-75 +-274 +-136 +-87 +-123 +-61 +-258 +-117 +-93 +-113 +-250 +-225 +-250 +-135 +-342 +-304 +-153 +-114 +-335 +-327 +-276 +-119 +-35 +-75 +-239 +-140 +-199 +-354 +-94 +-51 +-176 +-35 +-121 +2 +-51 +-80 +-116 +-69 +-282 +-180 +-10 +-103 +-172 +-332 +-158 +-95 +-365 +-358 +-69 +-263 +-75 +-74 +-1 +-236 +-28 +-311 +-364 +-275 +-333 +-52 +-376 +-156 +-310 +-276 +-160 +-218 +-341 +-78 +-184 +-14 +-291 +-279 +-248 +0 +-199 +-252 +-221 +-23 +-371 +-39 +-355 +0 +-211 +-151 +-34 +-209 +-310 +-215 +-76 +-398 +-21 +-206 +-339 +-147 +-47 +-70 +-105 +-340 +-128 +-321 +-101 +-225 +-425 +-248 +-117 +-437 +-379 +-196 +-262 +-236 +-365 +-217 +-213 +-70 +-406 +-414 +-425 +-332 +-13 +-120 +-238 +-238 +-110 +-224 +-116 +-414 +-419 +-309 +-121 +-104 +-9 +-406 +-82 +-72 +-249 +-432 +-380 +-14 +-388 +-403 +-249 +-349 +-480 +-118 +-243 +-285 +1 +-126 +-33 +-99 +-241 +-151 +-329 +-64 +-63 +-120 +-75 +-255 +-118 +-177 +-138 +-451 +-306 +-245 +-33 +-55 +-90 +-212 +-301 +-168 +-363 +-314 +-417 +-385 +-52 +-497 +-131 +-71 +-134 +-69 +-138 +-141 +-347 +-358 +-505 +-294 +-288 +-432 +-234 +-439 +-112 +-260 +-31 +-273 +-86 +-362 +-237 +-369 +-442 +-402 +-453 +-30 +-171 +-33 +-170 +-20 +-539 +-93 +-456 +-240 +-10 +-344 +-150 +-262 +-417 +-421 +-44 +-15 +-51 +-69 +-268 +-290 +-344 +-196 +-556 +-519 +-242 +-197 +-546 +-99 +-377 +-225 +-113 +-138 +-120 +-263 +-170 +-452 +-405 +-376 +-551 +-190 +-9 +-224 +-110 +-183 +-454 +-212 +-55 +-264 +-348 +-510 +-152 +-71 +-356 +-424 +-233 +-234 +-10 +-524 +-76 +-251 +-456 +-578 +-348 +-176 +-406 +-173 +-160 +-603 +-129 +-558 +-106 +-535 +-465 +-310 +-569 +-302 +-504 +0 +-175 +-59 +-485 +-586 +-88 +-136 +-524 +-164 +-55 +-150 +-191 +-40 +-552 +-386 +-217 +-119 +-250 +-448 +-357 +-485 +-623 +-412 +-202 +-266 +-55 +-256 +-169 +-327 +-165 +-101 +-550 +-434 +-176 +-152 +-518 +-624 +-374 +-305 +-370 +-304 +-362 +-109 +-277 +-53 +-318 +-574 +-338 +-276 +-620 +-306 +-499 +-77 +-122 +-329 +-156 +-654 +-576 +-79 +-498 +-9 +-15 +-445 +-415 +-491 +-641 +-104 +-600 +-126 +-156 +0 +-70 +-271 +-162 +0 +-640 +-505 +-261 +0 +-476 +-555 +-130 +-423 +-360 +-138 +-457 +-674 +-303 +-624 +-513 +-566 +-405 +-406 +-632 +-177 +-66 +-277 +-445 +-117 +-628 +-452 +-156 +-535 +-254 +-44 +-466 +-142 +-414 +-473 +-201 +-85 +-336 +-660 +-607 +-376 +-367 +-582 +-619 +-499 +-89 +-232 +-708 +-731 +-215 +-72 +-159 +-278 +-53 +-257 +-104 +-7 +-745 +-403 +-534 +-17 +-520 +-510 +-353 +-504 +-578 +-729 +-139 +-271 +-181 +-134 +-475 +-251 +-490 +-205 +-675 +-112 +-753 +-256 +-485 +-234 +-654 +-403 +-450 +-658 +-172 +-675 +-54 +-169 +-230 +-1 +-436 +-108 +-660 +-289 +-367 +-314 +-68 +-572 +-586 +-369 +-145 +-543 +-756 +-78 +-490 +-785 +-180 +2 +-424 +-159 +-727 +-235 +-645 +-28 +-282 +-489 +-250 +-71 +-682 +-711 +-398 +-55 +-328 +-182 +-166 +-743 +-388 +-334 +-432 +-729 +-360 +-471 +-16 +-602 +-709 +-69 +-269 +-791 +-489 +-322 +-646 +-301 +-159 +-268 +-777 +-456 +-746 +-356 +-809 +-728 +-90 +-302 +-386 +-728 +-656 +-29 +-101 +-728 +-82 +-406 +-675 +-62 +-160 +-617 +-125 +-698 +-120 +-655 +-751 +-284 +-475 +-16 +-420 +-574 +-638 +-38 +-573 +-623 +-747 +-115 +-430 +-591 +-832 +-422 +-40 +-212 +-564 +-71 +-513 +-623 +-503 +-189 +-256 +-728 +-655 +-580 +-508 +-382 +-883 +-885 +-480 +-117 +-407 +-253 +-635 +-244 +-101 +-847 +-857 +-205 +-119 +-756 +-302 +-169 +-277 +-521 +-586 +-472 +-880 +-580 +-825 +-428 +-248 +-846 +-226 +-621 +-413 +-302 +-161 +-177 +-601 +-830 +-275 +-700 +-922 +0 +-897 +-764 +-151 +-343 +-10 +-601 +-772 +-574 +-478 +-791 +-244 +-4 +-927 +-601 +-686 +-109 +-786 +-224 +-409 +-725 +-411 +-692 +-886 +-667 +-767 +-773 +-623 +-868 +-319 +-739 +-36 +-309 +-634 +-240 +-790 +-711 +-426 +-426 +-860 +-227 +-677 +-67 +-567 +-621 +-714 +-430 +-914 +-335 +-601 +-205 +-475 +-737 +-60 +-28 +-19 +-221 +-660 +-386 +-67 +-474 +-49 +-488 +-207 +-209 +-178 +-889 +-370 +-180 +-232 +-709 +-861 +-359 +-372 +-591 +-80 +-709 +-340 +-441 +-116 +-156 +-525 +-687 +-604 +-31 +-303 +-425 +-650 +-642 +-606 +-626 +-332 +-26 +-126 +-846 +-672 +-74 +-201 +-256 +-660 +-342 +-184 +-1008 +-196 +-757 +-522 +-293 +-241 +-662 +-655 +-617 +-810 +-943 +-295 +-506 +-904 +-1038 +-966 +-259 +-1025 +-448 +-597 +-210 +-45 +-533 +-48 +-943 +-618 +1 +-697 +-1049 +-607 +-668 +-164 +-751 +-722 +-940 +-381 +-194 +-671 +-336 +-738 +-712 +-390 +-352 +-35 +-470 +-737 +-715 +-663 +-549 +-598 +-707 +-135 +-277 +-470 +-225 +-742 +-1010 +-10 +-134 +0 +-724 +-811 +-758 +-869 +-1029 +-567 +-889 \ No newline at end of file diff --git a/day-05/part-2/ludoge.py b/day-05/part-2/ludoge.py new file mode 100644 index 0000000..39d92bc --- /dev/null +++ b/day-05/part-2/ludoge.py @@ -0,0 +1,25 @@ +from submission import Submission + + +class LudogeSubmission(Submission): + + def run(self, s): + # :param s: input in string format + # :return: solution flag + # your solution code goes here + offsets = [int(x) for x in s.split()] + i=0 + steps=0 + while True: + steps+=1 + oldoffset = offsets[i] + if offsets[i]>=3: + offsets[i]-=1 + else: + offsets[i]+=1 + if i+oldoffset>=len(offsets): + return steps + else: + i+=oldoffset + pass +