자바로 백준 2015 풀기

hong030·2023년 10월 11일
0

풀이)
기본적으로 이 문제를 풀기 위해서는 Counting Sort(카운팅 정렬)을 사용할 것이다. 물론 정렬을 쉽게 하기 위해 Arrays.sort 로 풀 수도 있지만 최빈값을 구하는 과정에 있어 '두 번째로 작은 값'을 출력해야하다보니 조금 복잡해진다. (사실상 중앙값 때문에 정렬을 해야하는 문제인데, 중앙값을 찾기 위해 직접 비교하면서 정렬을 하는 것은 비용소모가 크다.)

그래도 혹시 모르니 Arrays.sort 로 푸는 방법도 올리긴 하겠으나, 기본 토대는 카운팅 정렬을 사용할 것이다.

내 코드)

/*
  counting 정렬을 사용한 방법
  st-lab.tisotry.com
*/
 
import java.util.Scanner;
 
public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		
		int N = in.nextInt();
		
		// 입력값의 범위 : -4000 ~ 4000
		int[] arr = new int[8001];
		
		/*
		 *  sum = 총 합계 
		 *  max = 최댓값
		 *  min = 최솟값 
		 *  median = 중앙값
profile
자바 주력, 프론트 공부 중인 초보 개발자. / https://github.com/hongjaewonP

0개의 댓글