From d7381795033cf4c3c11f1a55ee896473841cbd10 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Thu, 13 Jun 2024 13:04:30 +0200 Subject: [PATCH] =?UTF-8?q?go:=20add=20=C2=AB2037.=20Minimum=20Number=20of?= =?UTF-8?q?=20Moves=20to=20Seat=20Everyone=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Matej Focko --- ...inimum-number-of-moves-to-seat-everyone.go | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 go/minimum-number-of-moves-to-seat-everyone.go 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 +}