diff --git a/go/minimum-number-of-moves-to-seat-everyone.go b/go/minimum-number-of-moves-to-seat-everyone.go new file mode 100644 index 0000000..d91fca8 --- /dev/null +++ b/go/minimum-number-of-moves-to-seat-everyone.go @@ -0,0 +1,23 @@ +package minimum_number_of_moves_to_seat_everyone + +import ( + "slices" +) + +func minMovesToSeat(seats []int, students []int) int { + abs := func(value int) int { + return max(-value, value) + } + + // sort them to get minimal distances + slices.Sort(seats) + slices.Sort(students) + + moves := 0 + for i, seat := range seats { + student := students[i] + moves += abs(seat - student) + } + + return moves +}