Advertisement
Guest User

Untitled

a guest
Dec 7th, 2021
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.85 KB | None | 0 0
  1. package main
  2.  
  3. import "math"
  4.  
  5. func PartOne(values []int) int {
  6.     var media int
  7.     smaller := math.MaxInt
  8.     for _, v := range values {
  9.         media += v
  10.         if v < smaller {
  11.             smaller = v
  12.         }
  13.     }
  14.     media /= len(values)
  15.     min := math.MaxInt
  16.     for i := 0; i < media+1; i++ {
  17.         f := 0
  18.         for _, v := range values {
  19.             f += int(math.Abs(float64(v) - float64(i)))
  20.         }
  21.         if f < min {
  22.             min = f
  23.         }
  24.     }
  25.     return min
  26. }
  27.  
  28. func PartTwo(values []int) int {
  29.     var media int
  30.     smaller := math.MaxInt
  31.     for _, v := range values {
  32.         media += v
  33.         if v < smaller {
  34.             smaller = v
  35.         }
  36.     }
  37.     media /= len(values)
  38.     min := math.MaxInt
  39.     sum := func(a int) int {
  40.         return a * (a + 1) / 2
  41.     }
  42.     for i := smaller; i < media+1; i++ {
  43.         f := 0
  44.         for _, v := range values {
  45.             f += sum(int(math.Abs(float64(v) - float64(i))))
  46.         }
  47.         if f < min {
  48.             min = f
  49.         }
  50.     }
  51.     return min
  52. }
  53.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement