Skip to content

Instantly share code, notes, and snippets.

@TristanWiley
Created December 6, 2015 20:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TristanWiley/b46a40e586de0dc0adc8 to your computer and use it in GitHub Desktop.
Save TristanWiley/b46a40e586de0dc0adc8 to your computer and use it in GitHub Desktop.
package com.tristanwiley;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
String input = "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";
input = input.replace(",", "");
int numOn = 0;
int numOff = 0;
List<String> inputArray;
inputArray = Arrays.asList(input.split("\\|"));
List<Boolean> lights = new ArrayList<>();
for (int i = 0; i < 1000000; i++) {
lights.add(false);
}
for (String s : inputArray) {
String firstWord = s.substring(0, s.indexOf(' '));
String secondWord = s.split("\\s+")[1];
if (firstWord.equals("toggle")) {
int firstNumber = Integer.parseInt(s.split("\\s+")[1]) - 1;
int secondNumber = Integer.parseInt(s.split("\\s+")[3]) - 1;
for (int a = firstNumber; a <= secondNumber; a++) {
if (lights.get(a)) {
lights.set(a, false);
} else {
lights.set(a, true);
}
}
}
if (firstWord.equals("turn")) {
int firstNumber = Integer.parseInt(s.split("\\s+")[2]);
int secondNumber = Integer.parseInt(s.split("\\s+")[4]);
if (secondWord.equals("off")) {
for (int a = firstNumber; a <= secondNumber; a++) {
lights.set(a, false);
}
} else if (secondWord.equals("on")) {
for (int a = firstNumber; a <= secondNumber; a++) {
lights.set(a, true);
}
}
}
}
for(Boolean b : lights){
if(b){
numOn += 1;
}else{
numOff += 1;
}
}
System.out.println(numOn);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment