refactoring
This commit is contained in:
parent
12e65157e2
commit
85a70f1767
@ -2,43 +2,41 @@ import fs from "fs-extra";
|
||||
import fp from "lodash/fp.js";
|
||||
import _ from "lodash";
|
||||
|
||||
import * as p1 from './part1.mjs';
|
||||
import * as p1 from "./part1.mjs";
|
||||
|
||||
function completionString(line) {
|
||||
const stack = [];
|
||||
|
||||
for ( const c of line ) {
|
||||
if( p1.closing[c] ) {
|
||||
for (const c of line) {
|
||||
if (p1.closing[c]) {
|
||||
stack.unshift(p1.closing[c]);
|
||||
} else {
|
||||
if(c !== stack.shift()) return;
|
||||
} else if (c !== stack.shift()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
return stack;
|
||||
|
||||
}
|
||||
|
||||
export function linesScore(lines) {
|
||||
lines = lines.map( completionString ).filter(x=>x);
|
||||
lines = lines.map(completionString).filter((x) => x);
|
||||
|
||||
const points = {
|
||||
')': 1,
|
||||
']': 2,
|
||||
'}': 3,
|
||||
'>': 4,
|
||||
}
|
||||
")": 1,
|
||||
"]": 2,
|
||||
"}": 3,
|
||||
">": 4,
|
||||
};
|
||||
|
||||
const lineScore = line => line.reduce( (a,b) => 5*a + points[b], 0 );
|
||||
const lineScore = (line) => line.reduce((a, b) => 5 * a + points[b], 0);
|
||||
|
||||
return lines.map(lineScore);
|
||||
}
|
||||
|
||||
export function solution(lines) {
|
||||
const scores = linesScore(lines);
|
||||
|
||||
const scores =linesScore(lines);
|
||||
scores.sort((a, b) => (a < b ? -1 : 1));
|
||||
|
||||
scores.sort( (a,b) => a<b?-1:1 );
|
||||
|
||||
return scores[ (scores.length-1) / 2 ];
|
||||
return scores[(scores.length - 1) / 2];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user