(kotlin) day 7 wip
This commit is contained in:
parent
93fb2cf177
commit
68b1dca649
|
@ -0,0 +1,101 @@
|
|||
Step B must be finished before step G can begin.
|
||||
Step G must be finished before step J can begin.
|
||||
Step J must be finished before step F can begin.
|
||||
Step U must be finished before step Z can begin.
|
||||
Step C must be finished before step M can begin.
|
||||
Step Y must be finished before step I can begin.
|
||||
Step Q must be finished before step A can begin.
|
||||
Step N must be finished before step L can begin.
|
||||
Step O must be finished before step A can begin.
|
||||
Step Z must be finished before step T can begin.
|
||||
Step I must be finished before step H can begin.
|
||||
Step L must be finished before step W can begin.
|
||||
Step F must be finished before step W can begin.
|
||||
Step T must be finished before step X can begin.
|
||||
Step A must be finished before step X can begin.
|
||||
Step K must be finished before step X can begin.
|
||||
Step S must be finished before step P can begin.
|
||||
Step M must be finished before step E can begin.
|
||||
Step E must be finished before step W can begin.
|
||||
Step D must be finished before step P can begin.
|
||||
Step P must be finished before step W can begin.
|
||||
Step X must be finished before step H can begin.
|
||||
Step V must be finished before step W can begin.
|
||||
Step R must be finished before step H can begin.
|
||||
Step H must be finished before step W can begin.
|
||||
Step N must be finished before step I can begin.
|
||||
Step X must be finished before step R can begin.
|
||||
Step D must be finished before step V can begin.
|
||||
Step V must be finished before step R can begin.
|
||||
Step F must be finished before step K can begin.
|
||||
Step P must be finished before step R can begin.
|
||||
Step P must be finished before step V can begin.
|
||||
Step S must be finished before step X can begin.
|
||||
Step I must be finished before step S can begin.
|
||||
Step J must be finished before step N can begin.
|
||||
Step T must be finished before step S can begin.
|
||||
Step T must be finished before step R can begin.
|
||||
Step K must be finished before step P can begin.
|
||||
Step N must be finished before step R can begin.
|
||||
Step G must be finished before step T can begin.
|
||||
Step I must be finished before step V can begin.
|
||||
Step G must be finished before step Q can begin.
|
||||
Step D must be finished before step H can begin.
|
||||
Step V must be finished before step H can begin.
|
||||
Step T must be finished before step K can begin.
|
||||
Step T must be finished before step W can begin.
|
||||
Step E must be finished before step H can begin.
|
||||
Step C must be finished before step R can begin.
|
||||
Step L must be finished before step K can begin.
|
||||
Step G must be finished before step Y can begin.
|
||||
Step Y must be finished before step O can begin.
|
||||
Step O must be finished before step E can begin.
|
||||
Step U must be finished before step S can begin.
|
||||
Step X must be finished before step W can begin.
|
||||
Step C must be finished before step D can begin.
|
||||
Step E must be finished before step P can begin.
|
||||
Step B must be finished before step R can begin.
|
||||
Step F must be finished before step R can begin.
|
||||
Step A must be finished before step D can begin.
|
||||
Step G must be finished before step M can begin.
|
||||
Step B must be finished before step Q can begin.
|
||||
Step Q must be finished before step V can begin.
|
||||
Step B must be finished before step W can begin.
|
||||
Step S must be finished before step H can begin.
|
||||
Step P must be finished before step X can begin.
|
||||
Step I must be finished before step M can begin.
|
||||
Step A must be finished before step S can begin.
|
||||
Step M must be finished before step X can begin.
|
||||
Step L must be finished before step S can begin.
|
||||
Step S must be finished before step W can begin.
|
||||
Step L must be finished before step V can begin.
|
||||
Step Z must be finished before step X can begin.
|
||||
Step M must be finished before step R can begin.
|
||||
Step T must be finished before step A can begin.
|
||||
Step N must be finished before step V can begin.
|
||||
Step M must be finished before step H can begin.
|
||||
Step E must be finished before step D can begin.
|
||||
Step F must be finished before step V can begin.
|
||||
Step B must be finished before step O can begin.
|
||||
Step G must be finished before step U can begin.
|
||||
Step J must be finished before step C can begin.
|
||||
Step G must be finished before step F can begin.
|
||||
Step Y must be finished before step M can begin.
|
||||
Step F must be finished before step D can begin.
|
||||
Step M must be finished before step P can begin.
|
||||
Step F must be finished before step T can begin.
|
||||
Step G must be finished before step A can begin.
|
||||
Step G must be finished before step Z can begin.
|
||||
Step K must be finished before step V can begin.
|
||||
Step J must be finished before step Z can begin.
|
||||
Step O must be finished before step Z can begin.
|
||||
Step B must be finished before step E can begin.
|
||||
Step Z must be finished before step V can begin.
|
||||
Step Q must be finished before step O can begin.
|
||||
Step J must be finished before step D can begin.
|
||||
Step Y must be finished before step E can begin.
|
||||
Step D must be finished before step R can begin.
|
||||
Step I must be finished before step F can begin.
|
||||
Step M must be finished before step V can begin.
|
||||
Step I must be finished before step D can begin.
|
||||
Step O must be finished before step P can begin.
|
|
@ -0,0 +1,26 @@
|
|||
import java.io.File
|
||||
import java.io.InputStream
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val inputStream = File("input").inputStream()
|
||||
val inputLines = inputStream.bufferedReader().use { it.readText() }.split("\n")
|
||||
var map: HashMap<Char, HashSet<Char>> = HashMap()
|
||||
for (line in inputLines) {
|
||||
val step = line[36]
|
||||
val dep = line[5]
|
||||
|
||||
// Make sure values that are only referenced as dependencies
|
||||
// (i. e. the first step in our chain) are also added to the set.
|
||||
map.getOrPut(dep, { HashSet<Char>() })
|
||||
|
||||
val currentDeps = map.getOrPut(step, { HashSet<Char>() })
|
||||
currentDeps.add(dep)
|
||||
}
|
||||
for (entry in map) {
|
||||
println(entry)
|
||||
}
|
||||
while (map.size > 0) {
|
||||
val candidatesForNext = map.entries.map{a -> Pair(a.key, a.value.size)}//.map{e -> Pair(e.1, e.2.size()}
|
||||
println(candidatesForNext)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user