Advent of Code 2022: Day 6

Решение для шестого дня получилось коротким, простым, универсальным (применительно к загадке).

И, я уверен, — глубоко неоптимальным при этом :). Зато — алгоритмически это было, пожалуй, проще загадок всех предыдущих дней.

Но оно сработало, что полностью соответствует духу викторины. Для первой части загадки markerSize = 4, для части два — markerSize = 14.

static void day6(String puzzleInputUri) throws IOException, InterruptedException { int markerSize = 14; Set<Byte> buffer = new HashSet<>(); byte[] message = client.send(request.uri((URI.create(puzzleInputUri))).build(), HttpResponse.BodyHandlers.ofByteArray()).body(); for (int i = 0; i < message.length - markerSize; i++) { for (int j = i; j < i + markerSize; j++) { buffer.add(message[j]); } if (buffer.size() == markerSize) { System.out.println(i + markerSize); break; } buffer.clear(); } }
11
2 комментария
Автор

Если пофантазировать - вполне возможно. И там, и тут - "смесь бульдога с носорогом" на выходе.