Day10 even more streamy
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user