aoc2015/day08/day08.go
Stefan Harmuth 349dd59cd3 day08
2020-12-24 15:54:12 +01:00

53 lines
992 B
Go

package day08
import (
"aoc2015/aoclib"
"encoding/hex"
)
func Part1(puzzle aoclib.Puzzle) 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 aoclib.Puzzle) 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
}