Skip to content

Commit db9f650

Browse files
author
Seralius
committed
Solved Day 13 (Today theres only one Solution, bc you can jsut read the first int out of the Console for P1)
1 parent 9818e5c commit db9f650

File tree

3 files changed

+78
-30
lines changed

3 files changed

+78
-30
lines changed

Diff for: 13/Part1.js

-15
This file was deleted.

Diff for: 13/Part1and2.js

+78
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
const fs = require('fs')
2+
3+
var Rawinput = fs.readFileSync("input.txt").toString('utf-8')
4+
input = Rawinput.split("\r\n");
5+
function Run() {
6+
var x, y = 0;
7+
var maxx, maxy = 0;
8+
var Matrix = [];
9+
input.forEach(element => {
10+
if (!element.includes("fold") && element != '') {
11+
var xy = element.split(",").map(Number);
12+
x = x > xy[0] ? x : xy[0];
13+
y = y > xy[1] ? y : xy[1];
14+
}
15+
});
16+
maxx = x;
17+
maxy = y;
18+
var Matrix = new Array(y + 1);
19+
for (var i = 0; i < y + 1; i++) {
20+
Matrix[i] = new Array(x + 1).fill(0);
21+
}
22+
var foldingTime = false;
23+
input.forEach(element => {
24+
foldingTime = !foldingTime ? element == '' : foldingTime;
25+
if (!foldingTime) {
26+
var xy = element.split(",").map(Number);
27+
Matrix[xy[1]][xy[0]] = 1;
28+
}
29+
else if (element != '') {
30+
if (element.startsWith("fold along y")) {
31+
var num = element.match(/(?<==)\d+/);
32+
for (let i = maxy; i > num; i--) {
33+
const line = Matrix[i];
34+
var Supposed = Matrix[maxy - i];
35+
for (let j = 0; j < line.length; j++) {
36+
if (line[j] == 1) {
37+
Supposed[j] = 1;
38+
}
39+
}
40+
}
41+
maxy = num - 1;
42+
}
43+
else if (element.startsWith("fold along x")) {
44+
var num = element.match(/(?<==)\d+/);
45+
for (let i = maxx; i > num; i--) {
46+
Matrix.forEach(line => {
47+
if (line[i] == 1) {
48+
line[maxx - i] = 1;
49+
}
50+
});
51+
}
52+
maxx = num - 1;
53+
}
54+
LogMatrix(Matrix, maxx, maxy);
55+
}
56+
});
57+
}
58+
function LogMatrix(Matrix, maxx, maxy) {
59+
var String = "";
60+
var count = 0;
61+
for (let i = 0; i < maxy + 1; i++) {
62+
for (let j = 0; j < maxx + 1; j++) {
63+
String += Matrix[i][j] == 1 ? "#" : " ";
64+
count += Matrix[i][j] == 1 ? 1 : 0;
65+
}
66+
String += "\n";
67+
}
68+
console.log(String);
69+
console.log(count);
70+
}
71+
module.exports = Run;
72+
//Start timer
73+
var startTime = new Date().getTime();
74+
Run();
75+
//End timer
76+
var endTime = new Date().getTime();
77+
var timeTaken = endTime - startTime;
78+
console.log("Time taken: " + timeTaken + "ms");

Diff for: 13/Part2.js

-15
This file was deleted.

0 commit comments

Comments
 (0)