2022 Day 02 Complete!
This commit is contained in:
56
2022/day02/main.go
Normal file
56
2022/day02/main.go
Normal file
@@ -0,0 +1,56 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
h "git.bullercodeworks.com/brian/adventofcode/helpers"
|
||||
)
|
||||
|
||||
func main() {
|
||||
inp := h.StdinToStringSlice()
|
||||
fmt.Println("# Part 1")
|
||||
fmt.Printf("Score: %d\n", part1(inp))
|
||||
fmt.Println("# Part 2")
|
||||
fmt.Printf("Score: %d\n", part2(inp))
|
||||
}
|
||||
|
||||
func part1(input []string) int {
|
||||
score := 0
|
||||
for i := range input {
|
||||
first, second := input[i][0], (input[i][2] - 23)
|
||||
score += int(second - 'A' + 1)
|
||||
switch second - first {
|
||||
case 1, 254:
|
||||
score += 6
|
||||
case 0:
|
||||
score += 3
|
||||
}
|
||||
}
|
||||
return score
|
||||
}
|
||||
|
||||
func part2(input []string) int {
|
||||
score := 0
|
||||
for i := range input {
|
||||
against, to := input[i][0], input[i][2]
|
||||
choose := byte(64)
|
||||
switch to {
|
||||
case 'X':
|
||||
choose = (against - 1)
|
||||
if choose < 'A' {
|
||||
choose = 'C'
|
||||
}
|
||||
case 'Y':
|
||||
score += 3
|
||||
choose = against
|
||||
case 'Z':
|
||||
choose = (against + 1)
|
||||
if choose > 'C' {
|
||||
choose = 'A'
|
||||
}
|
||||
score += 6
|
||||
}
|
||||
score += int(choose - 64)
|
||||
}
|
||||
return score
|
||||
}
|
||||
Reference in New Issue
Block a user