Mooie dingen
This commit is contained in:
@@ -9,6 +9,6 @@
|
|||||||
"typescript": "^4.9.3"
|
"typescript": "^4.9.3"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "nodemon src/2022/day10/index.ts"
|
"start": "nodemon src/2022/day12/index.ts"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
27
src/2022/day11/example.txt
Normal file
27
src/2022/day11/example.txt
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
Monkey 0:
|
||||||
|
Starting items: 79, 98
|
||||||
|
Operation: new = old * 19
|
||||||
|
Test: divisible by 23
|
||||||
|
If true: throw to monkey 2
|
||||||
|
If false: throw to monkey 3
|
||||||
|
|
||||||
|
Monkey 1:
|
||||||
|
Starting items: 54, 65, 75, 74
|
||||||
|
Operation: new = old + 6
|
||||||
|
Test: divisible by 19
|
||||||
|
If true: throw to monkey 2
|
||||||
|
If false: throw to monkey 0
|
||||||
|
|
||||||
|
Monkey 2:
|
||||||
|
Starting items: 79, 60, 97
|
||||||
|
Operation: new = old * old
|
||||||
|
Test: divisible by 13
|
||||||
|
If true: throw to monkey 1
|
||||||
|
If false: throw to monkey 3
|
||||||
|
|
||||||
|
Monkey 3:
|
||||||
|
Starting items: 74
|
||||||
|
Operation: new = old + 3
|
||||||
|
Test: divisible by 17
|
||||||
|
If true: throw to monkey 0
|
||||||
|
If false: throw to monkey 1
|
||||||
108
src/2022/day11/index.ts
Normal file
108
src/2022/day11/index.ts
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
import path from 'path';
|
||||||
|
import { readFile, sum } from "../../utils";
|
||||||
|
|
||||||
|
let input = readFile(path.resolve(__dirname, 'input.txt'));
|
||||||
|
|
||||||
|
let monkeys: any[] = []
|
||||||
|
|
||||||
|
input.split("\n\n").forEach((line, idx) => {
|
||||||
|
const data = line.split("\n");
|
||||||
|
|
||||||
|
const starting = data[1].split(":")[1].split(",").map(meow => meow.split(" ").join("")).map(Number);
|
||||||
|
const [arg1, op, arg2] = data[2].split(":")[1].split(" ").filter(a => a !== "=" && a !== "" && a !== "new");
|
||||||
|
const DivBy = Number(data[3].split("Test: divisible by ")[1]);
|
||||||
|
const toTrue = Number(data[4].split("If true: throw to monkey ")[1]);
|
||||||
|
const toFalse = Number(data[5].split("If false: throw to monkey ")[1]);
|
||||||
|
|
||||||
|
monkeys.push({
|
||||||
|
starting,
|
||||||
|
operation: { arg1, op, arg2 },
|
||||||
|
DivBy,
|
||||||
|
toTrue,
|
||||||
|
toFalse,
|
||||||
|
inspected: 0
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
let rounds = 20;
|
||||||
|
|
||||||
|
for (let round = 0; round < rounds; round++) {
|
||||||
|
monkeys.forEach(monkey => {
|
||||||
|
while(monkey.starting.length > 0){
|
||||||
|
const item = monkey.starting.shift();
|
||||||
|
monkey.inspected++;
|
||||||
|
const arg1 = monkey.operation.arg1 === "old" ? item : Number(monkey.operation.arg1);
|
||||||
|
const arg2 = monkey.operation.arg2 === "old" ? item : Number(monkey.operation.arg2);
|
||||||
|
var newVal = 0;
|
||||||
|
|
||||||
|
if (monkey.operation.op === "*") {
|
||||||
|
newVal = arg1 * arg2;
|
||||||
|
}
|
||||||
|
else if (monkey.operation.op === "+") {
|
||||||
|
newVal = arg1 + arg2;
|
||||||
|
}
|
||||||
|
|
||||||
|
newVal = Math.floor(newVal / 3);
|
||||||
|
|
||||||
|
if (!(newVal % monkey.DivBy)) {
|
||||||
|
monkeys[monkey.toTrue].starting.push(newVal);
|
||||||
|
} else {
|
||||||
|
monkeys[monkey.toFalse].starting.push(newVal);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const monkeyz = monkeys.map(moneky => moneky.inspected).sort((a,b) => b - a);
|
||||||
|
console.log("Part1:", monkeyz[0] * monkeyz[1]);
|
||||||
|
|
||||||
|
|
||||||
|
monkeys = []
|
||||||
|
|
||||||
|
input.split("\n\n").forEach((line, idx) => {
|
||||||
|
const data = line.split("\n");
|
||||||
|
|
||||||
|
const starting = data[1].split(":")[1].split(",").map(meow => meow.split(" ").join("")).map(Number);
|
||||||
|
const [arg1, op, arg2] = data[2].split(":")[1].split(" ").filter(a => a !== "=" && a !== "" && a !== "new");
|
||||||
|
const DivBy = Number(data[3].split("Test: divisible by ")[1]);
|
||||||
|
const toTrue = Number(data[4].split("If true: throw to monkey ")[1]);
|
||||||
|
const toFalse = Number(data[5].split("If false: throw to monkey ")[1]);
|
||||||
|
|
||||||
|
monkeys.push({
|
||||||
|
starting,
|
||||||
|
operation: { arg1, op, arg2 },
|
||||||
|
DivBy,
|
||||||
|
toTrue,
|
||||||
|
toFalse,
|
||||||
|
inspected: 0
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
rounds = 1000;
|
||||||
|
|
||||||
|
for (let round = 0; round < rounds; round++) {
|
||||||
|
monkeys.forEach(monkey => {
|
||||||
|
while(monkey.starting.length > 0){
|
||||||
|
const item = monkey.starting.shift();
|
||||||
|
monkey.inspected++;
|
||||||
|
const arg1 = monkey.operation.arg1 === "old" ? item : Number(monkey.operation.arg1);
|
||||||
|
const arg2 = monkey.operation.arg2 === "old" ? item : Number(monkey.operation.arg2);
|
||||||
|
var newVal = 0;
|
||||||
|
|
||||||
|
if (monkey.operation.op === "*") {
|
||||||
|
newVal = arg1 * arg2;
|
||||||
|
}
|
||||||
|
else if (monkey.operation.op === "+") {
|
||||||
|
newVal = arg1 + arg2;
|
||||||
|
}
|
||||||
|
|
||||||
|
let remainder = newVal / monkey.DivBy;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const monkeyz2 = monkeys.map(moneky => moneky.inspected).sort((a,b) => b - a);
|
||||||
|
console.log("Part1:", monkeyz2[0] * monkeyz2[1]);
|
||||||
|
|
||||||
55
src/2022/day11/input.txt
Normal file
55
src/2022/day11/input.txt
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
Monkey 0:
|
||||||
|
Starting items: 89, 74
|
||||||
|
Operation: new = old * 5
|
||||||
|
Test: divisible by 17
|
||||||
|
If true: throw to monkey 4
|
||||||
|
If false: throw to monkey 7
|
||||||
|
|
||||||
|
Monkey 1:
|
||||||
|
Starting items: 75, 69, 87, 57, 84, 90, 66, 50
|
||||||
|
Operation: new = old + 3
|
||||||
|
Test: divisible by 7
|
||||||
|
If true: throw to monkey 3
|
||||||
|
If false: throw to monkey 2
|
||||||
|
|
||||||
|
Monkey 2:
|
||||||
|
Starting items: 55
|
||||||
|
Operation: new = old + 7
|
||||||
|
Test: divisible by 13
|
||||||
|
If true: throw to monkey 0
|
||||||
|
If false: throw to monkey 7
|
||||||
|
|
||||||
|
Monkey 3:
|
||||||
|
Starting items: 69, 82, 69, 56, 68
|
||||||
|
Operation: new = old + 5
|
||||||
|
Test: divisible by 2
|
||||||
|
If true: throw to monkey 0
|
||||||
|
If false: throw to monkey 2
|
||||||
|
|
||||||
|
Monkey 4:
|
||||||
|
Starting items: 72, 97, 50
|
||||||
|
Operation: new = old + 2
|
||||||
|
Test: divisible by 19
|
||||||
|
If true: throw to monkey 6
|
||||||
|
If false: throw to monkey 5
|
||||||
|
|
||||||
|
Monkey 5:
|
||||||
|
Starting items: 90, 84, 56, 92, 91, 91
|
||||||
|
Operation: new = old * 19
|
||||||
|
Test: divisible by 3
|
||||||
|
If true: throw to monkey 6
|
||||||
|
If false: throw to monkey 1
|
||||||
|
|
||||||
|
Monkey 6:
|
||||||
|
Starting items: 63, 93, 55, 53
|
||||||
|
Operation: new = old * old
|
||||||
|
Test: divisible by 5
|
||||||
|
If true: throw to monkey 3
|
||||||
|
If false: throw to monkey 1
|
||||||
|
|
||||||
|
Monkey 7:
|
||||||
|
Starting items: 50, 61, 52, 58, 86, 68, 97
|
||||||
|
Operation: new = old + 4
|
||||||
|
Test: divisible by 11
|
||||||
|
If true: throw to monkey 5
|
||||||
|
If false: throw to monkey 4
|
||||||
5
src/2022/day12/example.txt
Normal file
5
src/2022/day12/example.txt
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
Sabqponm
|
||||||
|
abcryxxl
|
||||||
|
accszExk
|
||||||
|
acctuvwj
|
||||||
|
abdefghi
|
||||||
5
src/2022/day12/index.ts
Normal file
5
src/2022/day12/index.ts
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
import path from 'path';
|
||||||
|
import { readFile, sum } from "../../utils";
|
||||||
|
|
||||||
|
let input = readFile(path.resolve(__dirname, 'input.txt'));
|
||||||
|
|
||||||
41
src/2022/day12/input.txt
Normal file
41
src/2022/day12/input.txt
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
abccccaaaaaaaaaaaaaccaaaaaaaacccccccccaaaaaaaaccccccccaaacaaacccccccaaaaaaccccccccccccccccccccccaaaacccccccccccacccccccccccccccccccccccccccccccccccccccccccccccaaaa
|
||||||
|
abccccaaaaacaaaaaaccccaaaaaaccccccccccaaaaaaacccccccccaaaaaaacccccaaaaaaaaaacccccccccccccccccccaaaaaacccccccccaaaaaaaaccccccccccccccccccccccccccccccccccccccccaaaaa
|
||||||
|
abcccaaaaaccaaaaaaccccaaaaaaccccccaacccaaaaaacccccccccaaaaaacccaaaaaaaaaaaaaaacaaccacccccccccccaaaaaaccccccccccaaaaaacccccccccccccccccccccccccccccccccccccccccaaaaa
|
||||||
|
abccccccaaccaaaaaaccaaaaaaaaccccccaaacaaaacaaacccccccaaaaaaaaccaaaaaaaaaaaaaaacaaaaacccccccccccccaaccccccccccccaaaaaaccccccccccccccccccccccccccccacccccccccccaaaaaa
|
||||||
|
abccccccccccaaccaaccaaaaccaacccccccaaaaaaaccccccccccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacccccccaaaaccccccccccccccccaaaaaaaacccccccccccccccccccccccccccaaccccccccccccccaa
|
||||||
|
abcccccccaaaaacccaaaaaaaacccaaccccaaaaaaccccccccccccaaaaaaaaaaaaaaaacaaaaaaaccaaaaaaccccccaaaaaccccccccccccccaaaaaaaaaaccaccccccccccccccccccccccccaccccccccccccccca
|
||||||
|
abcccccccaaaaacccaaaaaaaaccaaaaccaaaaaaaaccccccccccccccaaacaaaaaaaaacaaaaaacccccaaaacccccaaaaaaccccccccccccccaaaaaaaaaaaaacccccccccccccccllllllccccdccccccccccccccc
|
||||||
|
abccccccaaaaaacccccaaaaccccaaaaacaaaaaaaaccccccccccccccaaacccccaaaccccaaaaaacccaaccccccccaaaaaacccccccccccccccccaaaaaaaaaacccccccccccccklllllllllcddddccaccaaaccccc
|
||||||
|
abccccccaaaaaacccccaaaaaaaaaaaaaaaccaaccccccaacaacccccccaaccccccccccccaaacaacccccccccccccaaaaaacccccccccccccccccaaaaaaaaaacccccccccccckklllppllllcddddddddaaaaccccc
|
||||||
|
abccccccaaaaaaccccaaacaaaaaaaaaaaaccaaccccccaaaaaccccccccccccccccccccccccccccccccccccccccccaaccccccaaccccccccccccaacaaaaaaaccccccccccckklpppppplllmdddddddddacccccc
|
||||||
|
abccccccccaaacccccaacccaccaaaaaaccccccccccccaaaaaaccccccccccccccccccccccccccccccccccccccccccccccccaaaaccccccccccccaaaaaaaaaaccccccccckkkkppppppplmmmmmmddddddaacccc
|
||||||
|
abccccaaacaaacccccccccccccaaaaaaccccccccccccaaaaaacccccccccccccccccaaaccccccccccccccccccccccccccccaaaaccccccccccccaaaaaaaaaaccccccccckkkppppuppppmmmmmmmmddeeeacccc
|
||||||
|
abccccaaaaaaacccccccccccccaaaaaacccaccccccccaaaaaacccccccccccccccccaaaacccccccccccccccccccccaaacccaaaacccccccccccaaaacaaaccccccccccckkkpppuuuuuppqqmmmmmmmmeeeacccc
|
||||||
|
abcccccaaaaaaccccccccccccaaaaaaaacaaccccccccccaaaccccccccccccccccccaaaaccccccccccccccccccccaaaaccccccccccccccccccaaaaaaaacccccccccckkkkpppuuuuupqqqqqqqmmmmeeeccccc
|
||||||
|
abcccccaaaaaaaacccccccccccaccccaaaaacccccccccccccccccccccccccccccccaaaccccccccccccccaaaccccaaaacccccccccccccaaccaaaaaaaaccccccccckkkkkrrpuuuxuuuqqqqqqqqmmmmeeccccc
|
||||||
|
abccccaaaaaaaaaccccccccccccccaaaaaacccccccacaacccccccccccccccccccccccccccccccccccccaaaaaacccaaaccccccccccaaaaccaaaaaaacccccccccckkkkrrrrruuuxxuvvvvvvqqqqnnneeccccc
|
||||||
|
abcccaaaaaaaaaaccccccccccccccaaaaaaaacccccaaaaacccccccccccccccaaaaaccccccccccccccccaaaaaaccccccccccccccccaaaaaaaaaaaaacccccccccjjjkrrrrruuuxxxxvvvvvvvqqqnnneeccccc
|
||||||
|
abcaaaaacaaacccccccccccccccccaaaaaaaacccccaaaaaccaacccccccccccaaaaaccccccccccccccccaaaaaccccccccccccccccccaaaaaccaaaaaacccccccjjjrrrrruuuuuxxxyvyyyvvvqqqnneeeccccc
|
||||||
|
abcaaaaacaaaccaaccccccccccccccccaacccccccaaaaaaaaaaaccccccccccaaaaaaccccccccccccccccaaaaaccccccccccccccccaaaaacccaaaaaaaacaaacjjjrrrtttuuxxxxxyyyyyvvvqqnnneeeccccc
|
||||||
|
abaaaaaccaacccaaaccaacccaaccccccaccccccccaaaaaaaaaacccccccccccaaaaaaccccccccccccccccaacaacccccccccccccccccccaacccaaccccaaaaaacjjjrrrtttxxxxxxxyyyyyvvvrrnnneeeccccc
|
||||||
|
SbaaaaacccccccaaaaaaaccaaaacccccccccccccccaaaaaaaaacccccccccccaaaaaaccccccccccccccccccccccccccccccccccccccccccccccaacccaaaaaacjjjrrrtttxxxEzzzzyyyvvvrrnnneeecccccc
|
||||||
|
abcaaaaacccccccaaaaaaccaaaacccccccccccccccaaaaaaaaacccccccccccccaaccccccccccccccccccccccccccccaaccccccccccaaccccacaaaacaaaaaaajjjrrrtttxxxxxyyyyyvvvrrrnnnfffcccccc
|
||||||
|
abcaacccccccaaaaaaaacccaaaaccccccccccccccccaaaaaaaaaaccccccccccccccccccccccccccccccccccccccaaaaaccccccccccaaccccaaaaaaaaaaaaaajjjqqqttttxxxxyyyyyyvvrrrnnnfffcccccc
|
||||||
|
abccccccccccaaaaaaaaaccccccccccccccccccccaaaaaaaaaaaaacccccccccccccccccaacccccccccccccccccccaaaaaccccccaacaaaaaccaaaacaaaaaaaacjjjqqqqttttxxyywyyyywvrrnnnfffcccccc
|
||||||
|
abccccccccccaaaaaaaaaacccccccccccccccccccaaaaaaaaacaaacccccccccccccaaacaacccccccccccccccccccaaaaaccccccaaaaaaaaccaaaaccccaaacccjjjjqqqqtttxwywwwyywwwrrnnnfffcccccc
|
||||||
|
abcccccccccccccaaaaaaacccccccccccccccccccaaaaaaaaaaaaaaaacccccccccccaaaaaccccccccccccccccccaaaaacccaaccccaaaaccccaacaacccaaaccccjjjiqqqtttwwywwwwwwwwrrroofffcccccc
|
||||||
|
abcccccccccccccaaaccccccccccccccccccccccaaaaaaaaaaaaaaaaaccccccccccccaaaaaacccccccccccccccccccaaacaaaccccaaaaaccccccccccccccccccciiiiqqqttwwwwwswwwwrrrroofffcccccc
|
||||||
|
abcccccccccccccaaccccccccccccaaaacccccccaaaaaaaaccaaaaacccccccccccccaaaaaaacccccccccccccccccccaaaaaaacccaaacaacccccaaaaacccccccccciiiqqqttwwwwsssssrrrrroofffaccccc
|
||||||
|
abcccccccccccccccccccccccccccaaaaccccccccacaaacccaaaaaaccccccaaccccaaaaaaccccccccaacaaccccccccaaaaaaccccaaaacacccccaaaaacccccccccciiiqqqtsswsssssssrrrrooofffaccccc
|
||||||
|
abcccccccccccccccccccccccccccaaaaccccccccccaaaccaaaaaaaccccccaaaaccaacaaaccccccccaaaaacccccccccaaaaaaaaccaaacacccccaaaaaacccccccccciiqqqssssssspposrrroooofffaccccc
|
||||||
|
abccccaaacccccccccccccccccccccaaacccccccccccccccaaacaaaccccaaaaaacccccaaaccccccccaaaaaacccccccaaaaaaaaaaaaaaaaaccccaaaaaaccccccaccciiiqqpsssssppppooooooogffaaccccc
|
||||||
|
abccccaaaaaacccaaaccccccccccccccccccccccccccccccccccccaccccaaaaacccccccccccccccccaaaaaaccccccaaaaaaaaaaaaaaaaaaccccaaaaaacccaaaaccciiiqqppppppppppoooooogggfaaacccc
|
||||||
|
abcccaaaaaaacccaaaccccccccccccccccccccccccccccccccccccccccccaaaaaccccccccccccccccaaaaaaccccccaaacaaaccccaaaaaacccccccaacccccaaaaaacciiipppppppphgggggggggggaaaacccc
|
||||||
|
abccaaaaaaaacccaaacaaacccccccccccccccccccccaacccccccccccccccaacaacccccaacccccccccccaaacccccccccccaaacccccaaaaacccccccccccccccaaaaacciiihppppphhhhgggggggggaaccccccc
|
||||||
|
abccaaaaaaacaaaaaaaaaacccccccccccccccccccccaaaccccccacccccccccccccccccaaccccccccccccccccccccccccaaaaccccaaaaaaccccccccccccccaaaaacccciihhhhhhhhhhgggggggccaaccccccc
|
||||||
|
abccccaaaaaaaaaaaaaaacccccccccccccccccccaaaaaaaaccccaaacaaaccccccccccaaaaccaaccccccccaacaacccccaaaaaaacccaacccccccccccccccccaacaaccccchhhhhhhhhaaaacccccccccccccccc
|
||||||
|
abccccaaaaaacaaaaaaaccccccccccccccccccccaaaaaaaaccccaaaaaaaccccccccccaaaaaaaacaccccccaaaaaccccccaaaaacccccccccccccccccccccccccccccccccchhhhhhacaaaaaccccccccccccccc
|
||||||
|
abccccaaccccccaaaaaacccccccccccccaaccccccaaaaaacccccaaaaaaccccccaaaaaaaaaaaaaaaccccccaaaaaacccaaaaaaacccccccccccccccccccccccccccccccccccccaaaaccaaacccccccccccaaaca
|
||||||
|
abccccccccccccaaaaaaaccccccccccccaaccccccaaaaaacccaaaaaaaaccccccaaaaaaaaaaaaaacccccccaaaaaacccaaaaaaaaccccccaaacccccccccccccccccccccccccccaaaaccccccccccccccccaaaaa
|
||||||
|
abccaaacccccccaaacaaacccccccccaaaaaaaacccaaaaaacccaaaaaaaaacccccaaaaaaaaaaaaaacccccccaaaaaccccaaaaaaaaccccccaaaaccccccccccccccccccccccccccaaaccccccccccccccccccaaaa
|
||||||
|
abcaaaacccccccaaccccccccccccccaaaaaaaacccaaccaacccaaaaaaaaaaccccccccaaaaaaacaacccccccccaaaccccccaaacaaccccccaaaacccccccccccccccccccccccccccccccccccccccccccccaaaaaa
|
||||||
@@ -1,17 +1,11 @@
|
|||||||
import path from 'path';
|
import path from 'path';
|
||||||
import { readFile, sum } from "../../utils";
|
import { readFile, sum } from "../../utils";
|
||||||
|
|
||||||
let input = readFile(path.resolve(__dirname, 'input.txt'));
|
let input = readFile(path.resolve(__dirname, 'example.txt'));
|
||||||
|
|
||||||
let grid: any[] = [];
|
let THistory: { x: number, y: number }[] = [];
|
||||||
|
|
||||||
let right = 0;
|
|
||||||
let up = 0;
|
|
||||||
|
|
||||||
let THistory: {x:number, y:number}[] = [];
|
|
||||||
|
|
||||||
let pos = {
|
let pos = {
|
||||||
|
|
||||||
H: { x: 0, y: 0 },
|
H: { x: 0, y: 0 },
|
||||||
T: { x: 0, y: 0 }
|
T: { x: 0, y: 0 }
|
||||||
}
|
}
|
||||||
@@ -20,7 +14,7 @@ input.split("\n").forEach(element => {
|
|||||||
const [dir, num] = element.split(" ");
|
const [dir, num] = element.split(" ");
|
||||||
|
|
||||||
for (let n = 0; n < num; n++) {
|
for (let n = 0; n < num; n++) {
|
||||||
const prevH = {x: pos.H.x, y: pos.H.y}
|
const prevH = { x: pos.H.x, y: pos.H.y }
|
||||||
switch (dir) {
|
switch (dir) {
|
||||||
case "U":
|
case "U":
|
||||||
pos.H = { x: pos.H.x, y: pos.H.y + 1 };
|
pos.H = { x: pos.H.x, y: pos.H.y + 1 };
|
||||||
@@ -38,10 +32,39 @@ input.split("\n").forEach(element => {
|
|||||||
|
|
||||||
const distX = Math.abs(pos.H.x - pos.T.x);
|
const distX = Math.abs(pos.H.x - pos.T.x);
|
||||||
const distY = Math.abs(pos.H.y - pos.T.y);
|
const distY = Math.abs(pos.H.y - pos.T.y);
|
||||||
if(distX > 1 || distY > 1) pos.T = {x: prevH.x, y: prevH.y};
|
if (distX > 1 || distY > 1) pos.T = { x: prevH.x, y: prevH.y };
|
||||||
|
|
||||||
THistory.push(pos.T);
|
THistory.push(pos.T);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log("Part 1:", new Set(THistory.map(pos => pos.x + "-" + pos.y)).size);
|
console.log("Part 1:", new Set(THistory.map(pos => pos.x + "-" + pos.y)).size);
|
||||||
|
|
||||||
|
|
||||||
|
let snek = Array(10).fill({ x: 0, y: 0 });
|
||||||
|
|
||||||
|
input.split("\n").forEach(element => {
|
||||||
|
const [dir, num] = element.split(" ");
|
||||||
|
|
||||||
|
for (let n = 0; n < num; n++) {
|
||||||
|
|
||||||
|
switch (dir) {
|
||||||
|
case "U":
|
||||||
|
snek[0] = { x: snek[0].x, y: snek[0].y + 1 };
|
||||||
|
break;
|
||||||
|
case "D":
|
||||||
|
snek[0] = { x: snek[0].x, y: snek[0].y - 1 };
|
||||||
|
break;
|
||||||
|
case "L":
|
||||||
|
snek[0] = { x: snek[0].x - 1, y: snek[0].y };
|
||||||
|
break;
|
||||||
|
case "R":
|
||||||
|
snek[0] = { x: snek[0].x + 1, y: snek[0].y };
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(snek);
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user