Combine AoC Repos
This commit is contained in:
55
2016/day06/main.go
Normal file
55
2016/day06/main.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
func main() {
|
||||
input := stdinToStringSlice()
|
||||
var partOne, partTwo string
|
||||
for j := range input[0] {
|
||||
freq := make(map[byte]int)
|
||||
for i := range input {
|
||||
freq[input[i][j]]++
|
||||
}
|
||||
partOne += getTopByte(freq)
|
||||
partTwo += getBottomByte(freq)
|
||||
}
|
||||
fmt.Println("Answer to Part 1: " + partOne)
|
||||
fmt.Println("Answer to Part 2: " + partTwo)
|
||||
}
|
||||
|
||||
func getTopByte(f map[byte]int) string {
|
||||
var topByte byte
|
||||
var topByteCnt int
|
||||
for k, v := range f {
|
||||
if v > topByteCnt {
|
||||
topByteCnt = v
|
||||
topByte = k
|
||||
}
|
||||
}
|
||||
return string(topByte)
|
||||
}
|
||||
|
||||
func getBottomByte(f map[byte]int) string {
|
||||
var botByte byte
|
||||
var botByteCnt int
|
||||
for k, v := range f {
|
||||
if v < botByteCnt || botByte == 0 {
|
||||
botByteCnt = v
|
||||
botByte = k
|
||||
}
|
||||
}
|
||||
return string(botByte)
|
||||
}
|
||||
|
||||
func stdinToStringSlice() []string {
|
||||
var input []string
|
||||
scanner := bufio.NewScanner(os.Stdin)
|
||||
for scanner.Scan() {
|
||||
input = append(input, scanner.Text())
|
||||
}
|
||||
return input
|
||||
}
|
||||
Reference in New Issue
Block a user