일반

[코드트리 챌린지] 중앙값 계산2

wwns 2023. 10. 2. 18:12
반응형

코드트리 3주 차 블로그챌린지입니다.

저는 기업별 커리큘럼을 신청하였고 오늘은 삼성 커리큘럼을 풀어 보았습니다

중앙값 계산 2 문제를 리뷰해보고자 합니다

https://www.codetree.ai/cote/13/problems/get-median-2/description

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 


풀이방법

  • 순서대로 숫자를 읽다가 홀수번째에 중앙값을 찾아 출력
  • 현재 시점에 중앙값을 찾아야하기 때문에 필요한 시점에 정렬을 한 후 중앙값을 읽는다
  • 매 번 정렬을 해야하는 비용이 신경쓰여서 한 번에 처리하는 방법을 고민해봤지만 특정 시점을 기준으로 중앙값을 찾아야하므로 매 번 정렬을 해야 함
import java.util.*;
import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        // 여기에 코드를 작성해주세요.
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int n = Integer.parseInt(br.readLine());

        int[] arr = new int[n];
        StringBuilder sb = new StringBuilder();
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        for (int i=0; i<n; i++) {
            arr[i] = Integer.parseInt(st.nextToken());
            if(i % 2 == 0) {
                Arrays.sort(arr, 0, i+1);
                sb.append(arr[i/2]).append(" ");
            }
        }
        System.out.println(sb);
        br.close();
    }
}
반응형