개발일기

Baekjoon2108.java 본문

Algorithm/정렬알고리즘

Baekjoon2108.java

한둥둥 2022. 9. 27. 18:21
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class baekjoon2108 {
    public static void main(String[] args) throws IOException{
        int []numberArr =  new int[8001];
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int sum = 0,max = Integer.MIN_VALUE,min = Integer.MAX_VALUE;         
        for(int i=0;i<n;i++){
            int targetNumber = Integer.parseInt(br.readLine());
            if(max<targetNumber){
                max = targetNumber;
            }
            if(min>targetNumber){
                min = targetNumber;
            }
            sum += targetNumber; 
            numberArr[4000+targetNumber]++;
        }
       
        int average = sum / n;
        System.out.println(average);
        
        int flag= 0;
        int median=0;
        int nNum = 0;
        int mode=0;
        boolean modeFlag=false;
        for(int i=min; i<=max;i++){
            if(nNum < numberArr[i+4000]){
                nNum = numberArr[i+4000];
                mode = i;
                modeFlag=true;
            }else if(nNum==numberArr[i+4000] && modeFlag!=false){
                nNum = numberArr[i+4000];
                mode =i;
                modeFlag=false;
            }
            while(numberArr[i+4000]!=0){
                if(flag== n/2) median=i;
                flag++;
                numberArr[i+4000]--;
            }
        }
        System.out.println(median);
        System.out.println(mode);
        int range = max - min;
        System.out.println(range);

    }
}

위에와 같이 Counting Sort정렬을 사용해 풀었지만... 자꾸 실패가뜸.. 다시 한번 차근차근 풀어보자.

내가 실수한 부분 여기서 산술 평균이여서 Math.round를 사용하여  sum/n을 나눈 것을 double형으로 만들어주어 소수로 판단하고 여기서 반올림을 하여 평균을 구해야 했음. 이 부분을 하지 못했음.. 생각이 짧았다. 

하나더 배우는 과정이였던거 같음 

'Algorithm > 정렬알고리즘' 카테고리의 다른 글

[자바] 18870 - 좌표 압축 Java(자바) // Study 메모용  (0) 2022.10.28
Baekjoon1427  (0) 2022.09.30
Baekjoon 25305 커트라인  (0) 2022.09.20