Guest User

Advent of Code 2020 Day 1

a guest
Dec 1st, 2020
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.86 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4.     "io/ioutil"
  5.     "log"
  6.     "os"
  7.     "strconv"
  8.     "strings"
  9. )
  10.  
  11. func prepare() []int {
  12.     f, err := os.Open("input.txt")
  13.     if err != nil {
  14.         log.Println(err)
  15.     }
  16.     defer func() {
  17.         err = f.Close()
  18.         if err != nil {
  19.             log.Println(err)
  20.         }
  21.     }()
  22.  
  23.     b, err := ioutil.ReadAll(f)
  24.     if err != nil {
  25.         log.Println(err)
  26.     }
  27.  
  28.     s := strings.Split(string(b), "\r\n")
  29.  
  30.     var z int
  31.     var q []int
  32.     for i := range s {
  33.         z, err = strconv.Atoi(s[i])
  34.         if err != nil {
  35.             log.Println(err)
  36.         }
  37.         q = append(q, z)
  38.     }
  39.     return q
  40. }
  41.  
  42. func main(){
  43.  
  44.     q := prepare()
  45.     solution := func() int {
  46.         l := 0
  47.         t := 0
  48.         for c := range q {
  49.             for l < len(q) {
  50.                 for t < len(q) {
  51.                     if q[c] + q[l] + q[t] == 2020 {
  52.                         return q[c] * q[l] * q[t]
  53.                     }
  54.                     t++
  55.                 }
  56.                 l++
  57.                 t = 0
  58.             }
  59.             l = 0
  60.         }
  61.         return 0
  62.     }
  63.  
  64.     log.Println(solution())
  65.  
  66. }
Advertisement
Add Comment
Please, Sign In to add comment