Unable to load image

Advent of Code day 6

was preparing my butthole after the last one but ended up being the fastest one i've done :marseyexcited:

with open("day6input.txt") as f:
    input = f.read()

# part 1

for i in range(len(input)):
    marker = set(input[i:i+4])
    if len(marker) == 4:
        answer = i + 4
        break

print(answer)

# part 2 

for i in range(len(input)):
    marker = set(input[i:i+14])
    if len(marker) == 14:
        answer = i + 14
        break

print(answer)
28
Jump in the discussion.

No email address required.

ez


package six

import (
	"bufio"
	"bytes"
	"os"
)

const packet_size int = 4
const message_size int = 14

func One() int {
	var deliver int
	var buffer []byte

	fp, _ := os.Open("six.txt")
	defer fp.Close()
	rd := bufio.NewReader(fp)

	for i := 0; ; i++ {
		ch, _ := rd.ReadByte()
		buffer = append(buffer, ch)

		if len(buffer) > packet_size {
			for _, x := range buffer[i-packet_size : i] {
				sep := string(x)
				deliver += bytes.Count(buffer[i-packet_size:i], []byte(sep))
			}

			if deliver == packet_size {
				return i
			} else {
				deliver = 0
			}
		}
	}
}

func Two() int {
	var deliver int
	var buffer []byte

	fp, _ := os.Open("six.txt")
	defer fp.Close()
	rd := bufio.NewReader(fp)

	for i := 0; ; i++ {
		ch, _ := rd.ReadByte()
		buffer = append(buffer, ch)

		if len(buffer) > message_size {
			for _, x := range buffer[i-message_size : i] {
				sep := string(x)
				deliver += bytes.Count(buffer[i-message_size:i], []byte(sep))
			}

			if deliver == message_size {
				return i
			} else {
				deliver = 0
			}
		}
	}
}
Jump in the discussion.

No email address required.

Link copied to clipboard
Action successful!
Error, please refresh the page and try again.