반응형

@notepad_jj2

츄르사려고 코딩하는 코집사입니다.


1. [SW expert Academy] SWEA 2063번 중간값 찾기 자바(Java)

 

2. 코드

1) 배열을 입력받고, 정렬하여 중간값을 찾아 출력하는 방법

import java.util.Arrays;
import java.util.Scanner;

public class Solution {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		
		int[] a = new int[N+1];
		for(int i=1;i<=N;i++) {
			a[i] = sc.nextInt();
		}
		
		Arrays.sort(a);
		
		System.out.println(a[(N/2)+1]);
		
	}
}

 

2) CountSort를 이용하여 찾는 방법

- 배열을 0으로 초기화

- 입력값을 배열의 인덱스에 Count 1씩 증가

- mid = 중간값의 위치

- 배열에서 맨 처음부터 순서들의 count를 합하여 mid와 같거나 크면 출력

import java.util.Scanner;

public class Solution {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		//N값 입력
		int N = sc.nextInt();
		
		int[] arr = new int[101];
		
		int result = 0;
		
		//배열 0으로 초기화
		for (int i = 0; i < arr.length; i++)
			arr[i] = 0;
		
		//배열에 1씩 증가
		for(int i=0;i<N;i++) arr[sc.nextInt()]++;
		
		int mid = N/2;
		
		for(int i=0;i<arr.length;i++) {
			result += arr[i];
			
			if(result>=mid) {
				System.out.println(i+1);
				break;				
			}
		}
	}
}

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기