-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtriangle2.js
41 lines (34 loc) · 820 Bytes
/
triangle2.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
const isPossibleTriangle = (a, b, c) => a + b > c;
const countValidTriangles = (input) => {
const columns = input
.split('\n')
.map((row) => {
const parts = row
.trim()
.split(' ')
.filter((x) => x.length)
.map((x) => parseInt(x));
return [
parts[0],
parts[1],
parts[2],
];
});
const triangles = [];
for (let i = 0; i < columns.length; i += 3) {
for (let j = 0; j < 3; j++) {
triangles.push([columns[i][j], columns[i + 1][j], columns[i + 2][j]]);
}
}
return triangles
.map((triangle) => {
const [a, b, c] = triangle.sort((a, b) => a - b);
return isPossibleTriangle(a, b, c);
})
.filter((x) => x)
.length;
};
module.exports = {
isPossibleTriangle,
countValidTriangles,
};