Skip to content

Commit 4f98b70

Browse files
day 7 yay
1 parent eef9776 commit 4f98b70

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
const input = Deno.readTextFileSync("./day07.txt").trim().split("\n").map(v => v.split(""))
2+
3+
let count = 0
4+
5+
const manifolds = deepCopy(input)
6+
manifolds[0][manifolds[0].indexOf("S")] = "|"
7+
8+
for (let row = 1; row < manifolds.length; row++) {
9+
const above = manifolds[row-1]
10+
11+
for (const [column, value] of manifolds[row].entries()) {
12+
if (above[column] == "|") {
13+
if (value == ".") {
14+
manifolds[row][column] = "|"
15+
} else if (value == "^") {
16+
count++
17+
manifolds[row][column-1] = "|"
18+
manifolds[row][column+1] = "|"
19+
}
20+
}
21+
}
22+
}
23+
24+
console.log(count)
25+
26+
const quantumManifolds: (number | "^")[][] = deepCopy(input).map(l => l.map(v => v == "." ? 0: "^"))
27+
quantumManifolds[0][input[0].indexOf("S")] = 1
28+
29+
for (let row = 1; row < quantumManifolds.length; row++) {
30+
const above = quantumManifolds[row-1]
31+
32+
for (const [column, value] of quantumManifolds[row].entries()) {
33+
const valueAbove = above[column]
34+
35+
if (typeof valueAbove == "number") {
36+
if (value == "^") {
37+
(quantumManifolds[row][column-1] as number) += valueAbove;
38+
(quantumManifolds[row][column+1] as number) += valueAbove
39+
} else {
40+
(quantumManifolds[row][column] as number) += valueAbove
41+
}
42+
}
43+
}
44+
}
45+
46+
const paths = (quantumManifolds.at(-1)! as number[]).reduce((p,c) => p+c,0)
47+
48+
console.log(paths)
49+
50+
function deepCopy(a: string[][]): string[][] {
51+
const b: string[][] = []
52+
a.forEach(l => {b.push([...l])})
53+
return b
54+
}

0 commit comments

Comments
 (0)