cleaner, better

This commit is contained in:
Joshua Seigler 2024-12-05 00:48:27 -05:00
parent ee81d62ef8
commit 0aa40e557a
2 changed files with 14 additions and 25 deletions

View file

@ -66,13 +66,13 @@
"solved": true, "solved": true,
"result": "4905", "result": "4905",
"attempts": [], "attempts": [],
"time": 29.389645 "time": 28.306566
}, },
"part2": { "part2": {
"solved": true, "solved": true,
"result": "6204", "result": "0",
"attempts": [], "attempts": [],
"time": 54.772924 "time": 35.287833
} }
}, },
{ {

View file

@ -11,33 +11,22 @@ const parseInput = (rawInput: string) => {
const part1 = (rawInput: string) => { const part1 = (rawInput: string) => {
const {rules, updates} = parseInput(rawInput) const {rules, updates} = parseInput(rawInput)
return updates.reduce((total, update) => { return updates.reduce((total, update) => {
let seen: number[] = [] const sortedUpdate = [...update].sort((p1,p2) => {
for (const page of update) { return rules.some(rule => rule[0] === p1 && rule[1] === p2) ? -1 : 1
if (rules.some(rule => seen.includes(rule[1]) && rule[0] === page)) { })
return total if (update.join() !== sortedUpdate.join()) return total
} return total + update[Math.floor(update.length / 2)]
seen.push(page)
}
return total + seen[Math.floor(seen.length / 2)]
}, 0) }, 0)
} }
const part2 = (rawInput: string) => { const part2 = (rawInput: string) => {
const {rules, updates} = parseInput(rawInput) const {rules, updates} = parseInput(rawInput)
return updates.reduce((total, update) => { return updates.reduce((total, update) => {
let seen: number[] = [] const sortedUpdate = [...update].sort((p1,p2) => {
for (const page of update) {
if (rules.some(rule => seen.includes(rule[1]) && rule[0] === page)) {
// needs fixing
const sortedUpdate = update.sort((p1,p2) => {
return rules.some(rule => rule[0] === p1 && rule[1] === p2) ? -1 : 1 return rules.some(rule => rule[0] === p1 && rule[1] === p2) ? -1 : 1
}) })
return total + update[Math.floor(update.length / 2)] if (update.join() === sortedUpdate.join()) return total
} return total + sortedUpdate[Math.floor(update.length / 2)]
seen.push(page)
}
// it's fine
return total
}, 0) }, 0)
} }
@ -115,5 +104,5 @@ run({
solution: part2, solution: part2,
}, },
trimTestInputs: true, trimTestInputs: true,
onlyTests: false, onlyTests: true,
}) })