day 2 part 1
This commit is contained in:
parent
95c3c6131a
commit
ccf3e827a9
2 changed files with 34 additions and 4 deletions
|
@ -7,9 +7,12 @@ class DayOne implements Solvable {
|
|||
input = readInput('01')
|
||||
|
||||
public part1(): DayOne {
|
||||
const vals = this.input.trim().split("\n").map(line => line.split(' '))
|
||||
const left = vals.map(line => Number.parseInt(line[0])).sort()
|
||||
const right = vals.map(line => Number.parseInt(line[1])).sort()
|
||||
const vals = this.input
|
||||
.trim()
|
||||
.split("\n")
|
||||
.map(line => line.split(' ').map(col => Number.parseInt(col)))
|
||||
const left = vals.map(line => line[0]).sort()
|
||||
const right = vals.map(line => line[1]).sort()
|
||||
|
||||
const diff: number[] = []
|
||||
left.forEach((left, idx) => {
|
||||
|
|
|
@ -7,7 +7,34 @@ class DayTwo implements Solvable {
|
|||
input = readInput('02')
|
||||
|
||||
public part1(): DayTwo {
|
||||
console.log("test")
|
||||
const reports = this.input.trim().split("\n").map(line => line.split(' ').map(level => Number.parseInt(level)))
|
||||
const slidingWindow = (levels: number[]): boolean => {
|
||||
const gradients: ("ascending" | "descending")[] = []
|
||||
let [i,j] = [0,1]
|
||||
while (j < levels.length) {
|
||||
// is unsafe if ascent / descend bigger than 3 or smaller than 1
|
||||
const diff = Math.abs(levels[i] - levels[j])
|
||||
if (diff > 3 && diff < 1) {
|
||||
return false
|
||||
}
|
||||
// calculate positive or negative gradient
|
||||
if (levels[i] < levels[j]) {
|
||||
gradients.push("ascending")
|
||||
} else if (levels[i] > levels[j]) {
|
||||
gradients.push("descending")
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
i++
|
||||
j++
|
||||
}
|
||||
// is safe and constant gradient?
|
||||
const constantGradient = gradients.every((gradient) => gradient === "ascending") || gradients.every((gradient) => gradient === "descending")
|
||||
return constantGradient
|
||||
}
|
||||
const result = reports.map(levels => slidingWindow(levels)).filter(level_safe => level_safe === true).length
|
||||
console.log(result)
|
||||
|
||||
return this
|
||||
}
|
||||
public part2(): DayTwo {
|
||||
|
|
Loading…
Reference in a new issue