static void day4(String puzzleInputUri) throws IOException, InterruptedException {
var cards = client.send(request.uri((URI.create(puzzleInputUri))).build(),
HttpResponse.BodyHandlers.ofLines()).body()
.map(it -> it.split(":", 2))
.map(it -> Map.entry(it[0], it[1].split("\\|", 2)))
.map(it -> new Card(it.getKey(), it.getValue()[0].split(" "),
it.getValue()[1].split(" ")))
.toList();
var answer1 = cards.stream()
.filter(card -> card.winCnt > 0)
.mapToInt(card -> card.winCnt)
.mapToDouble(win -> Math.pow(2, (win - 1)))
.reduce(Double::sum).orElseThrow();
System.out.println(answer1); // 20117
var answer2 = IntStream.iterate(cards.size() - 1, i -> i >= 0, i -> i - 1)
.mapToObj(cards::get)
.peek(card -> card.addNext(cards.subList(card.cardN, card.cardN + card.winCnt)))
.flatMap(card -> card.flat())
.count();
System.out.println(answer2); // 13768818
}
Комментарий недоступен