Day10 even more streamy

This commit is contained in:
2019-12-14 19:19:59 +01:00
parent ab7a6aa486
commit dc1149971f

View File

@@ -4,7 +4,6 @@ import com.basdado.adventofcode.lines
import java.util.stream.Collectors
import java.util.stream.IntStream
import java.util.stream.Stream
import java.util.stream.StreamSupport
import kotlin.math.PI
import kotlin.math.abs
import kotlin.math.atan2
@@ -33,16 +32,17 @@ object Day10 {
.entries
.sortedBy { val angle = (it.key.angle() + 0.5 * PI); if (angle < 0) 2*PI + angle else angle }
.map { it.value.sortedBy( Vector2i::manhattan ) }
val sortedAsteroidIterators = sortedAsteroidLists.map { it.iterator() }
val asteroid200 = optimalAsteroid.first + IntStream.range(0, 1000000)
.mapToObj { sortedAsteroidIterators[it % sortedAsteroidIterators.size] }
.sequential()
.filter { it.hasNext() }
.map { it.next() }
.skip(199)
.findFirst()
.get()
val sortedAsteroidIterators = sortedAsteroidLists.map { it.iterator() }
val asteroid200 = optimalAsteroid.first +
Stream.generate { sortedAsteroidIterators.stream() }
.flatMap { it }
.sequential()
.filter { it.hasNext() }
.map { it.next() }
.skip(199)
.findFirst()
.get()
println(asteroid200.x * 100 + asteroid200.y)
}