renamed 2 digit file names
This commit is contained in:
parent
018011dd27
commit
b4d985a55a
44 changed files with 0 additions and 0 deletions
101
2018/07/input.txt
Normal file
101
2018/07/input.txt
Normal file
|
@ -0,0 +1,101 @@
|
|||
Step J must be finished before step K can begin.
|
||||
Step N must be finished before step X can begin.
|
||||
Step S must be finished before step G can begin.
|
||||
Step T must be finished before step R can begin.
|
||||
Step H must be finished before step L can begin.
|
||||
Step V must be finished before step W can begin.
|
||||
Step G must be finished before step U can begin.
|
||||
Step K must be finished before step A can begin.
|
||||
Step D must be finished before step Z can begin.
|
||||
Step C must be finished before step E can begin.
|
||||
Step X must be finished before step P can begin.
|
||||
Step Y must be finished before step U can begin.
|
||||
Step R must be finished before step O can begin.
|
||||
Step W must be finished before step U can begin.
|
||||
Step O must be finished before step Q can begin.
|
||||
Step A must be finished before step P can begin.
|
||||
Step B must be finished before step E can begin.
|
||||
Step F must be finished before step E can begin.
|
||||
Step Q must be finished before step U can begin.
|
||||
Step M must be finished before step E can begin.
|
||||
Step P must be finished before step U can begin.
|
||||
Step L must be finished before step Z can begin.
|
||||
Step Z must be finished before step U can begin.
|
||||
Step U must be finished before step E can begin.
|
||||
Step I must be finished before step E can begin.
|
||||
Step H must be finished before step G can begin.
|
||||
Step X must be finished before step I can begin.
|
||||
Step K must be finished before step X can begin.
|
||||
Step Z must be finished before step I can begin.
|
||||
Step S must be finished before step M can begin.
|
||||
Step L must be finished before step U can begin.
|
||||
Step A must be finished before step M can begin.
|
||||
Step W must be finished before step A can begin.
|
||||
Step N must be finished before step A can begin.
|
||||
Step S must be finished before step E can begin.
|
||||
Step W must be finished before step Q can begin.
|
||||
Step J must be finished before step L can begin.
|
||||
Step Q must be finished before step L can begin.
|
||||
Step M must be finished before step U can begin.
|
||||
Step H must be finished before step E can begin.
|
||||
Step D must be finished before step E can begin.
|
||||
Step V must be finished before step P can begin.
|
||||
Step Q must be finished before step M can begin.
|
||||
Step X must be finished before step W can begin.
|
||||
Step K must be finished before step I can begin.
|
||||
Step T must be finished before step H can begin.
|
||||
Step Y must be finished before step L can begin.
|
||||
Step G must be finished before step O can begin.
|
||||
Step M must be finished before step Z can begin.
|
||||
Step F must be finished before step Z can begin.
|
||||
Step Q must be finished before step E can begin.
|
||||
Step H must be finished before step C can begin.
|
||||
Step Q must be finished before step P can begin.
|
||||
Step D must be finished before step U can begin.
|
||||
Step Z must be finished before step E can begin.
|
||||
Step O must be finished before step M can begin.
|
||||
Step L must be finished before step I can begin.
|
||||
Step J must be finished before step A can begin.
|
||||
Step Q must be finished before step Z can begin.
|
||||
Step P must be finished before step I can begin.
|
||||
Step K must be finished before step O can begin.
|
||||
Step R must be finished before step E can begin.
|
||||
Step W must be finished before step F can begin.
|
||||
Step D must be finished before step Q can begin.
|
||||
Step R must be finished before step U can begin.
|
||||
Step W must be finished before step P can begin.
|
||||
Step S must be finished before step Z can begin.
|
||||
Step T must be finished before step P can begin.
|
||||
Step B must be finished before step Q can begin.
|
||||
Step S must be finished before step T can begin.
|
||||
Step R must be finished before step A can begin.
|
||||
Step K must be finished before step R can begin.
|
||||
Step N must be finished before step G can begin.
|
||||
Step C must be finished before step W can begin.
|
||||
Step T must be finished before step A can begin.
|
||||
Step B must be finished before step Z can begin.
|
||||
Step C must be finished before step P can begin.
|
||||
Step D must be finished before step P can begin.
|
||||
Step B must be finished before step P can begin.
|
||||
Step F must be finished before step U can begin.
|
||||
Step V must be finished before step X can begin.
|
||||
Step K must be finished before step W can begin.
|
||||
Step Y must be finished before step I can begin.
|
||||
Step C must be finished before step B can begin.
|
||||
Step X must be finished before step L can begin.
|
||||
Step X must be finished before step M can begin.
|
||||
Step H must be finished before step P can begin.
|
||||
Step S must be finished before step F can begin.
|
||||
Step J must be finished before step Y can begin.
|
||||
Step Y must be finished before step Z can begin.
|
||||
Step B must be finished before step I can begin.
|
||||
Step S must be finished before step C can begin.
|
||||
Step K must be finished before step E can begin.
|
||||
Step N must be finished before step Q can begin.
|
||||
Step A must be finished before step Z can begin.
|
||||
Step J must be finished before step I can begin.
|
||||
Step Y must be finished before step O can begin.
|
||||
Step Y must be finished before step F can begin.
|
||||
Step S must be finished before step U can begin.
|
||||
Step D must be finished before step W can begin.
|
||||
Step V must be finished before step D can begin.
|
22
2018/07/part1.js
Normal file
22
2018/07/part1.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
const fs = require('fs');
|
||||
let rules = fs.readFileSync('input.txt', 'utf-8').split('\n');
|
||||
steps = [];
|
||||
for (let rule of rules) {
|
||||
[_, step1, step2] = rule.match(/Step (\w) must be finished before step (\w) can begin./);
|
||||
if (!steps[step1])
|
||||
steps[step1] = []
|
||||
if (!steps[step2])
|
||||
steps[step2] = []
|
||||
steps[step2].push(step1)
|
||||
}
|
||||
let ans = '';
|
||||
|
||||
while (Object.entries(steps).length > 0) {
|
||||
let step = Object.entries(steps).filter(v => v[1].length == 0).map(v => v[0]).sort()[0]
|
||||
delete steps[step];
|
||||
for (let step_ in steps) {
|
||||
steps[step_] = steps[step_].filter(v => v != step)
|
||||
}
|
||||
ans += step
|
||||
}
|
||||
console.log(ans)
|
38
2018/07/part2.js
Normal file
38
2018/07/part2.js
Normal file
|
@ -0,0 +1,38 @@
|
|||
const fs = require('fs');
|
||||
let rules = fs.readFileSync('input.txt', 'utf-8').split('\n');
|
||||
steps = {};
|
||||
for (let rule of rules) {
|
||||
[_, step1, step2] = rule.match(/Step (\w) must be finished before step (\w) can begin./);
|
||||
if (!steps[step1])
|
||||
steps[step1] = []
|
||||
if (!steps[step2])
|
||||
steps[step2] = []
|
||||
steps[step2].push(step1)
|
||||
}
|
||||
|
||||
let elves = {};
|
||||
for (let time = 0; Object.entries(steps).length > 0; time++) {
|
||||
if (elves[time]) {
|
||||
console.log(`step ${elves[time]} done`)
|
||||
remove(elves[time])
|
||||
delete elves[time];
|
||||
}
|
||||
let avaliable = Object.entries(steps).filter(v => v[1].length == 0).map(v => v[0]).sort();
|
||||
for (let i = 0; Object.entries(elves).length < 5 && i < avaliable.length; i++) {
|
||||
if (!Object.values(elves).some(v => v == avaliable[i])) {
|
||||
elves[time + timeof(avaliable[i])] = avaliable[i]
|
||||
}
|
||||
}
|
||||
console.log(time, Object.values(elves))
|
||||
}
|
||||
|
||||
function timeof(step) {
|
||||
return 60 + '0ABCDEFGHIJKLMNOPQRSTUVWXYZ'.indexOf(step)
|
||||
}
|
||||
|
||||
function remove(step) {
|
||||
delete steps[step];
|
||||
for (let s in steps) {
|
||||
steps[s] = steps[s].filter(v => v != step)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue