From 0a1837263fd62a8b1f9d18f0054a32826484337e Mon Sep 17 00:00:00 2001 From: Mikayla Dobson Date: Sun, 16 Jul 2023 12:03:13 -0500 Subject: [PATCH] day six --- daysix.go | 32 ++++++++++++++++++++++++++++++++ main.go | 8 ++++++++ 2 files changed, 40 insertions(+) create mode 100644 daysix.go diff --git a/daysix.go b/daysix.go new file mode 100644 index 0000000..744d793 --- /dev/null +++ b/daysix.go @@ -0,0 +1,32 @@ +package main + +func areUnique(inputs [4]byte) bool { + switch { + case inputs[0] == inputs[1]: + case inputs[0] == inputs[2]: + case inputs[0] == inputs[3]: + case inputs[1] == inputs[2]: + case inputs[1] == inputs[3]: + case inputs[2] == inputs[3]: + return false + } + + return true +} + +func daySix(input string) (marker int) { + var a, b, c, d byte + marker = 4 + + for i := 3; i < len(input); i++ { + a, b, c, d = input[i-3], input[i-2], input[i-1], input[i] + + if areUnique([4]byte{a, b, c, d}) { + return + } + + marker++ + } + + return -1 +} diff --git a/main.go b/main.go index 72daa8c..a5ff2bf 100644 --- a/main.go +++ b/main.go @@ -102,4 +102,12 @@ func main() { for _, r := range dayFiveResult { fmt.Printf("%c ", r) } + + + /** DAY SIX */ + fmt.Println("\nDAY SIX") + fmt.Println(daySix("bvwbjplbgvbhsrlpgdmjqwftvncz")) + fmt.Println(daySix("nppdvjthqldpwncqszvftbrmjlhg")) + fmt.Println(daySix("nznrnfrfntjfmvfwmzdfjlvtqnbhcprsg")) + fmt.Println(daySix("zcfzfwzzqfrljwzlrfnpqdbhtmscgvjw")) }