| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package main
- import (
- "bufio"
- "fmt"
- "os"
- "strconv"
- )
- func main() {
- fmt.Println("Advent of Code 2025 - Day 3 - Part 1")
- f,_:= os.Open("3/input")
- defer f.Close()
- scanner := bufio.NewScanner(f)
- var res int;
- for scanner.Scan(){
- bank := scanner.Text()
- max_volt,_ := max_voltage(bank)
- res += max_volt
- }
- fmt.Println(res)
- }
- func max_voltage(bank string) (int, error){
- max1, max2 := byte('0'),byte('0')
- i_max1, i_max2:= -1,-1
- var result string
-
- for i:= 0; i < len(bank); i++{
- if bank[i] > max1{
- max1,i_max1 = bank[i],i
- }
- }
-
- for i:= i_max1+1; i < len(bank); i++{
- if bank[i] > max2{
- max2,i_max2 = bank[i],i
- }
- }
- if i_max2 == -1 {
- for i:= 0; i < len(bank); i++{
- if bank[i] > max2 && i != i_max1{
- max2,i_max2 = bank[i],i
- }
- }
- }
- if i_max2 > i_max1 {
- result = string([]byte{max1, max2})
- } else {
- result = string([]byte{max2, max1})
- }
-
- return strconv.Atoi(result)
- }
|