import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
long cnt = 0; //불만도 합
int n = sc.nextInt();
ArrayList<Integer> list = new ArrayList<>();
for(int i =0; i< n; i++){
list.add(sc.nextInt());
}
Collections.sort(list);
for(int i = 1; i<=list.size(); i++){
cnt += Math.abs(i -list.get(i-1));
}
System.out.println(cnt);
};
}
불만도의 최소값을 구하는 문제
학생들의 예상점수를 오름차순으로 정렬 후 , 나열된 순서대로 (1등..2등..) 뺀 절대값을 합해주면 된다...
설명을 잘 못하겟다..
정렬 후 : [1,1,2,3,5]
원래 등수 : [1,2,3,4,5]
Math.abs( ) : 절대값을 반환하는 함수!!!!!!!!!!
TIP !!!!!!!!!)
문제에서 N의 범위가 500,000 인데, 만약 모든 학생이 자신의 등수를 1로 예상할경우,
|1-500,000| x 500,500 이 되어서 int의 범위를 벗어난다.
따라서 불만도의 자료형을 long 으로 선언한다.