aoc2015/day08/day.go
2020-12-26 11:07:04 +01:00

53 lines
987 B
Go

package day08
import (
"encoding/hex"
"tools"
)
func Part1(puzzle tools.AoCPuzzle) interface{} {
answer := 0
for _, line := range puzzle.GetInputArray() {
line = line[1 : len(line)-1]
newline := ""
index := 0
for index < len(line) {
if line[index] == '\\' {
if line[index+1] == '\\' || line[index+1] == '"' {
newline += string(line[index+1])
index++
} else if line[index+1] == 'x' {
decoded, _ := hex.DecodeString(line[index+2 : index+4])
newline += string(decoded)
index += 3
}
} else {
newline += string(line[index])
}
index++
}
answer += len(line) - len(newline) + 2
}
return answer
}
func Part2(puzzle tools.AoCPuzzle) interface{} {
answer := 0
for _, line := range puzzle.GetInputArray() {
newline := ""
for _, c := range line {
if c == '"' || c == '\\' {
newline += "\\" + string(c)
} else {
newline += string(c)
}
}
answer += len(newline) - len(line) + 2
}
return answer
}