[BaekJoon] 2012 등수 매기기 (Java)

SeongWon Oh·2021년 10월 15일
0
post-thumbnail

🔗 문제 링크

https://www.acmicpc.net/problem/2012


📝 문제풀이 방법

해당 문제는 기본적인 그리디 알고리즘 문제로 배열을 Sort하여 학생들의 등수를 구하고 Sort를 통해 구한 등수와 학생들의 예상 등수의 차이를 합하면 되는 간단한 문제이다.

🚨 단, 모든 학생이 1등을 희망하고 학생 수가 많을 경우 불만도의 값이 int범위를 넘어갈 수 있어서 결과를 담는 변수는 long타입으로 만들어줘야한다.


👨🏻‍💻 작성한 코드

import java.io.*;
import java.util.*;

public class Main {

	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int N = Integer.parseInt(br.readLine());
		
		int[] arr = new int[N+1];
		arr[0] = 0;
		for (int i=1; i<=N; i++) {
			arr[i] = Integer.parseInt(br.readLine());
		}
		Arrays.sort(arr);
		
		long disappointment = 0;
		for (int i= 1; i<=N; i++) { // i는 실제 등수
			disappointment += Math.abs(i-arr[i]); 
		}
		System.out.println(disappointment);
	}

}

profile
블로그 이전했습니다. -> https://seongwon.dev/

0개의 댓글