Solved Day 6
parent
438a42fffd
commit
daa7f3eeb5
|
@ -0,0 +1,300 @@
|
|||
toggle 461,550 through 564,900
|
||||
turn off 370,39 through 425,839
|
||||
turn off 464,858 through 833,915
|
||||
turn off 812,389 through 865,874
|
||||
turn on 599,989 through 806,993
|
||||
turn on 376,415 through 768,548
|
||||
turn on 606,361 through 892,600
|
||||
turn off 448,208 through 645,684
|
||||
toggle 50,472 through 452,788
|
||||
toggle 205,417 through 703,826
|
||||
toggle 533,331 through 906,873
|
||||
toggle 857,493 through 989,970
|
||||
turn off 631,950 through 894,975
|
||||
turn off 387,19 through 720,700
|
||||
turn off 511,843 through 581,945
|
||||
toggle 514,557 through 662,883
|
||||
turn off 269,809 through 876,847
|
||||
turn off 149,517 through 716,777
|
||||
turn off 994,939 through 998,988
|
||||
toggle 467,662 through 555,957
|
||||
turn on 952,417 through 954,845
|
||||
turn on 565,226 through 944,880
|
||||
turn on 214,319 through 805,722
|
||||
toggle 532,276 through 636,847
|
||||
toggle 619,80 through 689,507
|
||||
turn on 390,706 through 884,722
|
||||
toggle 17,634 through 537,766
|
||||
toggle 706,440 through 834,441
|
||||
toggle 318,207 through 499,530
|
||||
toggle 698,185 through 830,343
|
||||
toggle 566,679 through 744,716
|
||||
toggle 347,482 through 959,482
|
||||
toggle 39,799 through 981,872
|
||||
turn on 583,543 through 846,710
|
||||
turn off 367,664 through 595,872
|
||||
turn on 805,439 through 964,995
|
||||
toggle 209,584 through 513,802
|
||||
turn off 106,497 through 266,770
|
||||
turn on 975,2 through 984,623
|
||||
turn off 316,684 through 369,876
|
||||
turn off 30,309 through 259,554
|
||||
turn off 399,680 through 861,942
|
||||
toggle 227,740 through 850,829
|
||||
turn on 386,603 through 552,879
|
||||
turn off 703,795 through 791,963
|
||||
turn off 573,803 through 996,878
|
||||
turn off 993,939 through 997,951
|
||||
turn on 809,221 through 869,723
|
||||
turn off 38,720 through 682,751
|
||||
turn off 318,732 through 720,976
|
||||
toggle 88,459 through 392,654
|
||||
turn off 865,654 through 911,956
|
||||
toggle 264,284 through 857,956
|
||||
turn off 281,776 through 610,797
|
||||
toggle 492,660 through 647,910
|
||||
turn off 879,703 through 925,981
|
||||
turn off 772,414 through 974,518
|
||||
turn on 694,41 through 755,96
|
||||
turn on 452,406 through 885,881
|
||||
turn off 107,905 through 497,910
|
||||
turn off 647,222 through 910,532
|
||||
turn on 679,40 through 845,358
|
||||
turn off 144,205 through 556,362
|
||||
turn on 871,804 through 962,878
|
||||
turn on 545,676 through 545,929
|
||||
turn off 316,716 through 413,941
|
||||
toggle 488,826 through 755,971
|
||||
toggle 957,832 through 976,992
|
||||
toggle 857,770 through 905,964
|
||||
toggle 319,198 through 787,673
|
||||
turn on 832,813 through 863,844
|
||||
turn on 818,296 through 818,681
|
||||
turn on 71,699 through 91,960
|
||||
turn off 838,578 through 967,928
|
||||
toggle 440,856 through 507,942
|
||||
toggle 121,970 through 151,974
|
||||
toggle 391,192 through 659,751
|
||||
turn on 78,210 through 681,419
|
||||
turn on 324,591 through 593,939
|
||||
toggle 159,366 through 249,760
|
||||
turn off 617,167 through 954,601
|
||||
toggle 484,607 through 733,657
|
||||
turn on 587,96 through 888,819
|
||||
turn off 680,984 through 941,991
|
||||
turn on 800,512 through 968,691
|
||||
turn off 123,588 through 853,603
|
||||
turn on 1,862 through 507,912
|
||||
turn on 699,839 through 973,878
|
||||
turn off 848,89 through 887,893
|
||||
toggle 344,353 through 462,403
|
||||
turn on 780,731 through 841,760
|
||||
toggle 693,973 through 847,984
|
||||
toggle 989,936 through 996,958
|
||||
toggle 168,475 through 206,963
|
||||
turn on 742,683 through 769,845
|
||||
toggle 768,116 through 987,396
|
||||
turn on 190,364 through 617,526
|
||||
turn off 470,266 through 530,839
|
||||
toggle 122,497 through 969,645
|
||||
turn off 492,432 through 827,790
|
||||
turn on 505,636 through 957,820
|
||||
turn on 295,476 through 698,958
|
||||
toggle 63,298 through 202,396
|
||||
turn on 157,315 through 412,939
|
||||
turn off 69,789 through 134,837
|
||||
turn off 678,335 through 896,541
|
||||
toggle 140,516 through 842,668
|
||||
turn off 697,585 through 712,668
|
||||
toggle 507,832 through 578,949
|
||||
turn on 678,279 through 886,621
|
||||
toggle 449,744 through 826,910
|
||||
turn off 835,354 through 921,741
|
||||
toggle 924,878 through 985,952
|
||||
turn on 666,503 through 922,905
|
||||
turn on 947,453 through 961,587
|
||||
toggle 525,190 through 795,654
|
||||
turn off 62,320 through 896,362
|
||||
turn on 21,458 through 972,536
|
||||
turn on 446,429 through 821,970
|
||||
toggle 376,423 through 805,455
|
||||
toggle 494,896 through 715,937
|
||||
turn on 583,270 through 667,482
|
||||
turn off 183,468 through 280,548
|
||||
toggle 623,289 through 750,524
|
||||
turn on 836,706 through 967,768
|
||||
turn on 419,569 through 912,908
|
||||
turn on 428,260 through 660,433
|
||||
turn off 683,627 through 916,816
|
||||
turn on 447,973 through 866,980
|
||||
turn on 688,607 through 938,990
|
||||
turn on 245,187 through 597,405
|
||||
turn off 558,843 through 841,942
|
||||
turn off 325,666 through 713,834
|
||||
toggle 672,606 through 814,935
|
||||
turn off 161,812 through 490,954
|
||||
turn on 950,362 through 985,898
|
||||
turn on 143,22 through 205,821
|
||||
turn on 89,762 through 607,790
|
||||
toggle 234,245 through 827,303
|
||||
turn on 65,599 through 764,997
|
||||
turn on 232,466 through 965,695
|
||||
turn on 739,122 through 975,590
|
||||
turn off 206,112 through 940,558
|
||||
toggle 690,365 through 988,552
|
||||
turn on 907,438 through 977,691
|
||||
turn off 838,809 through 944,869
|
||||
turn on 222,12 through 541,832
|
||||
toggle 337,66 through 669,812
|
||||
turn on 732,821 through 897,912
|
||||
toggle 182,862 through 638,996
|
||||
turn on 955,808 through 983,847
|
||||
toggle 346,227 through 841,696
|
||||
turn on 983,270 through 989,756
|
||||
turn off 874,849 through 876,905
|
||||
turn off 7,760 through 678,795
|
||||
toggle 973,977 through 995,983
|
||||
turn off 911,961 through 914,976
|
||||
turn on 913,557 through 952,722
|
||||
turn off 607,933 through 939,999
|
||||
turn on 226,604 through 517,622
|
||||
turn off 3,564 through 344,842
|
||||
toggle 340,578 through 428,610
|
||||
turn on 248,916 through 687,925
|
||||
toggle 650,185 through 955,965
|
||||
toggle 831,359 through 933,536
|
||||
turn off 544,614 through 896,953
|
||||
toggle 648,939 through 975,997
|
||||
turn on 464,269 through 710,521
|
||||
turn off 643,149 through 791,320
|
||||
turn off 875,549 through 972,643
|
||||
turn off 953,969 through 971,972
|
||||
turn off 236,474 through 772,591
|
||||
toggle 313,212 through 489,723
|
||||
toggle 896,829 through 897,837
|
||||
toggle 544,449 through 995,905
|
||||
turn off 278,645 through 977,876
|
||||
turn off 887,947 through 946,977
|
||||
turn on 342,861 through 725,935
|
||||
turn on 636,316 through 692,513
|
||||
toggle 857,470 through 950,528
|
||||
turn off 736,196 through 826,889
|
||||
turn on 17,878 through 850,987
|
||||
turn on 142,968 through 169,987
|
||||
turn on 46,470 through 912,853
|
||||
turn on 182,252 through 279,941
|
||||
toggle 261,143 through 969,657
|
||||
turn off 69,600 through 518,710
|
||||
turn on 372,379 through 779,386
|
||||
toggle 867,391 through 911,601
|
||||
turn off 174,287 through 900,536
|
||||
toggle 951,842 through 993,963
|
||||
turn off 626,733 through 985,827
|
||||
toggle 622,70 through 666,291
|
||||
turn off 980,671 through 985,835
|
||||
turn off 477,63 through 910,72
|
||||
turn off 779,39 through 940,142
|
||||
turn on 986,570 through 997,638
|
||||
toggle 842,805 through 943,985
|
||||
turn off 890,886 through 976,927
|
||||
turn off 893,172 through 897,619
|
||||
turn off 198,780 through 835,826
|
||||
toggle 202,209 through 219,291
|
||||
turn off 193,52 through 833,283
|
||||
toggle 414,427 through 987,972
|
||||
turn on 375,231 through 668,236
|
||||
turn off 646,598 through 869,663
|
||||
toggle 271,462 through 414,650
|
||||
turn off 679,121 through 845,467
|
||||
toggle 76,847 through 504,904
|
||||
turn off 15,617 through 509,810
|
||||
toggle 248,105 through 312,451
|
||||
turn off 126,546 through 922,879
|
||||
turn on 531,831 through 903,872
|
||||
toggle 602,431 through 892,792
|
||||
turn off 795,223 through 892,623
|
||||
toggle 167,721 through 533,929
|
||||
toggle 813,251 through 998,484
|
||||
toggle 64,640 through 752,942
|
||||
turn on 155,955 through 892,985
|
||||
turn on 251,329 through 996,497
|
||||
turn off 341,716 through 462,994
|
||||
toggle 760,127 through 829,189
|
||||
turn on 86,413 through 408,518
|
||||
toggle 340,102 through 918,558
|
||||
turn off 441,642 through 751,889
|
||||
turn on 785,292 through 845,325
|
||||
turn off 123,389 through 725,828
|
||||
turn on 905,73 through 983,270
|
||||
turn off 807,86 through 879,276
|
||||
toggle 500,866 through 864,916
|
||||
turn on 809,366 through 828,534
|
||||
toggle 219,356 through 720,617
|
||||
turn off 320,964 through 769,990
|
||||
turn off 903,167 through 936,631
|
||||
toggle 300,137 through 333,693
|
||||
toggle 5,675 through 755,848
|
||||
turn off 852,235 through 946,783
|
||||
toggle 355,556 through 941,664
|
||||
turn on 810,830 through 867,891
|
||||
turn off 509,869 through 667,903
|
||||
toggle 769,400 through 873,892
|
||||
turn on 553,614 through 810,729
|
||||
turn on 179,873 through 589,962
|
||||
turn off 466,866 through 768,926
|
||||
toggle 143,943 through 465,984
|
||||
toggle 182,380 through 569,552
|
||||
turn off 735,808 through 917,910
|
||||
turn on 731,802 through 910,847
|
||||
turn off 522,74 through 731,485
|
||||
turn on 444,127 through 566,996
|
||||
turn off 232,962 through 893,979
|
||||
turn off 231,492 through 790,976
|
||||
turn on 874,567 through 943,684
|
||||
toggle 911,840 through 990,932
|
||||
toggle 547,895 through 667,935
|
||||
turn off 93,294 through 648,636
|
||||
turn off 190,902 through 532,970
|
||||
turn off 451,530 through 704,613
|
||||
toggle 936,774 through 937,775
|
||||
turn off 116,843 through 533,934
|
||||
turn on 950,906 through 986,993
|
||||
turn on 910,51 through 945,989
|
||||
turn on 986,498 through 994,945
|
||||
turn off 125,324 through 433,704
|
||||
turn off 60,313 through 75,728
|
||||
turn on 899,494 through 940,947
|
||||
toggle 832,316 through 971,817
|
||||
toggle 994,983 through 998,984
|
||||
toggle 23,353 through 917,845
|
||||
toggle 174,799 through 658,859
|
||||
turn off 490,878 through 534,887
|
||||
turn off 623,963 through 917,975
|
||||
toggle 721,333 through 816,975
|
||||
toggle 589,687 through 890,921
|
||||
turn on 936,388 through 948,560
|
||||
turn off 485,17 through 655,610
|
||||
turn on 435,158 through 689,495
|
||||
turn on 192,934 through 734,936
|
||||
turn off 299,723 through 622,847
|
||||
toggle 484,160 through 812,942
|
||||
turn off 245,754 through 818,851
|
||||
turn on 298,419 through 824,634
|
||||
toggle 868,687 through 969,760
|
||||
toggle 131,250 through 685,426
|
||||
turn off 201,954 through 997,983
|
||||
turn on 353,910 through 832,961
|
||||
turn off 518,781 through 645,875
|
||||
turn off 866,97 through 924,784
|
||||
toggle 836,599 through 857,767
|
||||
turn on 80,957 through 776,968
|
||||
toggle 277,130 through 513,244
|
||||
turn off 62,266 through 854,434
|
||||
turn on 792,764 through 872,842
|
||||
turn off 160,949 through 273,989
|
||||
turn off 664,203 through 694,754
|
||||
toggle 491,615 through 998,836
|
||||
turn off 210,146 through 221,482
|
||||
turn off 209,780 through 572,894
|
||||
turn on 766,112 through 792,868
|
||||
turn on 222,12 through 856,241
|
|
@ -0,0 +1,3 @@
|
|||
turn on 0,0 through 999,999
|
||||
toggle 0,0 through 999,0
|
||||
turn off 499,499 through 500,500
|
|
@ -0,0 +1,55 @@
|
|||
#!/bin/env ruby
|
||||
require 'pry'
|
||||
|
||||
input = File.readlines('./input').map(&:strip)
|
||||
|
||||
lights = Array.new(1000) { Array.new(1000, false) }
|
||||
|
||||
instructions = Hash.new
|
||||
|
||||
instructions = input.map.with_index do |line, i|
|
||||
line.slice!('turn')
|
||||
line = line.split(' ')
|
||||
{ Command: line[0], Start: line[1].split(',').map!(&:to_i), End: line[3].split(',').map!(&:to_i) }
|
||||
end
|
||||
|
||||
instructions.each do | instruction |
|
||||
x = instruction[:End][0] - instruction[:Start][0] + 1
|
||||
y = instruction[:End][1] - instruction[:Start][1] + 1
|
||||
y.times do |y|
|
||||
x.times do |x|
|
||||
case instruction[:Command]
|
||||
when 'on'
|
||||
lights[instruction[:Start][0] + x][ instruction[:Start][1] + y] = true
|
||||
when 'off'
|
||||
lights[instruction[:Start][0] + x][ instruction[:Start][1] + y] = false
|
||||
when 'toggle'
|
||||
lights[instruction[:Start][0] + x][ instruction[:Start][1] + y] = !(lights[instruction[:Start][0] + x][ instruction[:Start][1] + y])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
puts "Part 1 Solution: #{lights.flatten.count(true)}"
|
||||
# Part 2 (sloppy style)
|
||||
lights = Array.new(1000) { Array.new(1000, 0) }
|
||||
|
||||
instructions.each do | instruction |
|
||||
x = instruction[:End][0] - instruction[:Start][0] + 1
|
||||
y = instruction[:End][1] - instruction[:Start][1] + 1
|
||||
y.times do |y|
|
||||
x.times do |x|
|
||||
case instruction[:Command]
|
||||
when 'on'
|
||||
lights[instruction[:Start][0] + x][ instruction[:Start][1] + y] += 1
|
||||
when 'off'
|
||||
lights[instruction[:Start][0] + x][ instruction[:Start][1] + y] -= 1
|
||||
lights[instruction[:Start][0] + x][ instruction[:Start][1] + y] = 0 if lights[instruction[:Start][0] + x][ instruction[:Start][1] + y] < 0
|
||||
when 'toggle'
|
||||
lights[instruction[:Start][0] + x][ instruction[:Start][1] + y] += 2
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
puts "Part 2 Solution: #{lights.flatten.sum}"
|
Loading…
Reference in New Issue