Skip to content

Instantly share code, notes, and snippets.

@samjaninf
Created December 7, 2019 02:46
Show Gist options
  • Save samjaninf/bac2c66eedc17b1b981a4bb90cc4bae3 to your computer and use it in GitHub Desktop.
Save samjaninf/bac2c66eedc17b1b981a4bb90cc4bae3 to your computer and use it in GitHub Desktop.
/*
*
* Correct Answer: 4259
* noun, verb
* 42, 59
* node Day2p2.js 0.09s user 0.08s system 81% cpu 0.211 total
*/
var intSet = [
1,
0,
0,
3,
1,
1,
2,
3,
1,
3,
4,
3,
1,
5,
0,
3,
2,
1,
10,
19,
1,
19,
5,
23,
2,
23,
6,
27,
1,
27,
5,
31,
2,
6,
31,
35,
1,
5,
35,
39,
2,
39,
9,
43,
1,
43,
5,
47,
1,
10,
47,
51,
1,
51,
6,
55,
1,
55,
10,
59,
1,
59,
6,
63,
2,
13,
63,
67,
1,
9,
67,
71,
2,
6,
71,
75,
1,
5,
75,
79,
1,
9,
79,
83,
2,
6,
83,
87,
1,
5,
87,
91,
2,
6,
91,
95,
2,
95,
9,
99,
1,
99,
6,
103,
1,
103,
13,
107,
2,
13,
107,
111,
2,
111,
10,
115,
1,
115,
6,
119,
1,
6,
119,
123,
2,
6,
123,
127,
1,
127,
5,
131,
2,
131,
6,
135,
1,
135,
2,
139,
1,
139,
9,
0,
99,
2,
14,
0,
0
];
const ADDSTEP = 4;
const MULSTEP = 4;
const HALSTEP = 1;
var workingSet = [...intSet];
var calc = (num1, num2, set) => {
set[1] = num1;
set[2] = num2;
set = set;
idx = 0;
while (set[idx] != 99) {
num = set[idx];
f_p = set[set[idx + 1]];
s_p = set[set[idx + 2]];
a_p = set[idx + 3];
if (num === 1) {
idx += ADDSTEP;
set[a_p] = f_p + s_p;
} else if (num === 2) {
idx += MULSTEP;
set[a_p] = f_p * s_p;
} else {
console.log("Error!");
break;
}
}
return set[0];
};
var fuck = false;
for (var x = 0; x < 100; x += 1) {
for (var y = 0; y < 100; y += 1) {
var working = [...intSet];
if (calc(x, y, working) == 19690720) {
fuck = true;
console.log("Found yeah yah bastard!");
console.log(working[0]);
}
if (fuck == true) break;
}
if (fuck == true) break;
}
console.log("Noun: " + x + "\nVerb: " + y);
console.log("Answer: " + (100 * x + y));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment