Skip to content

Instantly share code, notes, and snippets.

View TineHorvat's full-sized avatar

TineH TineHorvat

View GitHub Profile

Keybase proof

I hereby claim:

  • I am tinehorvat on github.
  • I am tineh (https://keybase.io/tineh) on keybase.
  • I have a public key ASBZ1HhKcE97KP9WGcrJmjkyCSIosJhyBs3yTOQsP9UVsQo

To claim this, I am signing this object:

var day5b = "very long input...";
console.time("day5b");
var day5bSpl = day5b.split("\n");
var sumStep = 0; var dArr = [];
for (var i = 0; i < day5bSpl.length; i++){
dArr.push(parseInt(day5bSpl[i],10));
}
var idx = 0;
while (idx < dArr.length) {
var curr = idx;
var day5a = "very long input...";
console.time("day5a");
var day5aSpl = day5a.split("\n");
var sumStep = 0; var dArr = [];
for (var i = 0; i < day5aSpl.length; i++){
dArr.push(parseInt(day5aSpl[i],10));
}
var idx = 0;
while (idx < dArr.length) {
var curr = idx;
//a little more help from good old StackOverflow
function hasDupsSimple(array) {
return array.some(function(value) {// .some will break as soon as duplicate found (no need to itterate over all array)
return array.indexOf(value) !== array.lastIndexOf(value);// comparing first and last indexes of the same value
})
}
function caseInsensitiveSort(a, b)
{
var ret = 0;
a = a.toLowerCase();b = b.toLowerCase();
//some help from good old StackOverflow
function hasDupsSimple(array) {
return array.some(function(value) {// .some will break as soon as duplicate found (no need to itterate over all array)
return array.indexOf(value) !== array.lastIndexOf(value);// comparing first and last indexes of the same value
})
}
var day4a = "very long input...";
var day4aSpl = day4a.split("\n");
var sumValid = 0;
for (var i = 0; i < day4aSpl.length; i++){
//while reading about the Square spiral of sums
//found this and looked for the right answer :D
//https://oeis.org/A141481/b141481.txt
//Shame, *ding* *ding*, Shame
var day3b = 277678;
console.log("Next: 279138");
//Dirty solution with math :)
var day3a = 277678;
var find = 1, level = 1, offset = 0, jumps = 0;
var path = 0;
while (find < day3a) {
level = level + 2;
find = Math.pow(level, 2);
}
offset = find - day3a;
jumps = offset % (level - 1);
var day2b = "1364 461 1438 1456 818 999 105 1065 314 99 1353 148 837 590 404 123\n" +
"204 99 235 2281 2848 3307 1447 3848 3681 963 3525 525 288 278 3059 821\n" +
"280 311 100 287 265 383 204 380 90 377 398 99 194 297 399 87\n" +
"7698 2334 7693 218 7344 3887 3423 7287 7700 2447 7412 6147 231 1066 248 208\n" +
"3740 837 4144 123 155 2494 1706 4150 183 4198 1221 4061 95 148 3460 550\n" +
"1376 1462 73 968 95 1721 544 982 829 1868 1683 618 82 1660 83 1778\n" +
"197 2295 5475 2886 2646 186 5925 237 3034 5897 1477 196 1778 3496 5041 3314\n" +
"179 2949 3197 2745 1341 3128 1580 184 1026 147 2692 212 2487 2947 3547 1120\n" +
"460 73 52 373 41 133 671 61 634 62 715 644 182 524 648 320\n" +
"169 207 5529 4820 248 6210 255 6342 4366 5775 5472 3954 3791 1311 7074 5729\n" +
var day2a = "1364 461 1438 1456 818 999 105 1065 314 99 1353 148 837 590 404 123\n" +
"204 99 235 2281 2848 3307 1447 3848 3681 963 3525 525 288 278 3059 821\n" +
"280 311 100 287 265 383 204 380 90 377 398 99 194 297 399 87\n" +
"7698 2334 7693 218 7344 3887 3423 7287 7700 2447 7412 6147 231 1066 248 208\n" +
"3740 837 4144 123 155 2494 1706 4150 183 4198 1221 4061 95 148 3460 550\n" +
"1376 1462 73 968 95 1721 544 982 829 1868 1683 618 82 1660 83 1778\n" +
"197 2295 5475 2886 2646 186 5925 237 3034 5897 1477 196 1778 3496 5041 3314\n" +
"179 2949 3197 2745 1341 3128 1580 184 1026 147 2692 212 2487 2947 3547 1120\n" +
"460 73 52 373 41 133 671 61 634 62 715 644 182 524 648 320\n" +
"169 207 5529 4820 248 6210 255 6342 4366 5775 5472 3954 3791 1311 7074 5729\n" +
var day1b = "349977448929146532968278716133885529936349351737335974749973934313241217189424846744921337364866195152468292484778365444519439388328481571992241165637156461264314935637721127147415466357646655864528583493266583455245736812248292218297727285312788933571466387722917827967448124795951725785559319682853267411915587354919236825868441854765841246778568566125822632631247159164982546597613122252959473286718737295941826954258525597189228168328163412596957663223575652523358512649334715553515363639445727636217614899442177877855643551317569483314136526468116267421688576348562343474326989313717574541563964329934217956751472732296424418887765171653759652889235153788717734497141893111678497885194792741726173343784126615748851569881715324833855283428513585997921543318893429851685281865628737361171132422718633188739173554283931731527832237273622821699825971235256718954529371186871912813829493359371733238626181722842547419358659638773594771261888794819111488274537815467894373175815689314452599125412733533452541712