코린이의 소소한 공부노트

[LeetCode/Easy] 2037. Minimum Number of Moves to Seat Everyone 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 2037. Minimum Number of Moves to Seat Everyone

무지맘 2023. 1. 11. 01:04

1. Input

1) 정수 배열 seats

- 학생들이 앉아야 할 자리의 번호가 담겨있다.

2) 정수 배열 students

- 학생들이 현재 앉아 있는 자리의 번호가 담겨있다.

 

2. Output

1) 1회에 학생 1명을 1칸씩 옮길 때, seats에 적힌 자리에 학생들을 모두 앉힐 수 있는 최소한의 이동 횟수를 반환

 

3. Constraint

1) n == seats.length == students.length

2) 1 <= n <= 100

3) 1 <= seats[i], students[j] <= 100

4) 자리를 모두 이동한 후에는 한 자리에 1명의 학생만 앉아 있다.

 

4. Example

Input: seats = [3,1,5], students = [2,7,4] -> Output: 4

설명:

- 2번에 앉은 학생이 1칸 움직여 1번 자리로 간다.

- 7번에 앉은 학생이 2칸 움직여 5번 자리로 간다.

- 4번에 앉은 학생이 1칸 움직여 3번 자리로 간다.

- 4칸을 움직였고, 이보다 이동 횟수가 적은 방법은 없으므로 4를 반환한다.

 

5. Code

1) 첫 코드(2022/07/01)

import java.util.*;

Arrays.sort(seats);
Arrays.sort(students);
int n = 0;
for(int i=0 ; i<seats.length ; i++)
    n += Math.abs(seats[i]-students[i]);
return n;