th42500의 TIL

[Java] SWEA2063 - 중간값 찾기 본문

Algorithm/SWEA

[Java] SWEA2063 - 중간값 찾기

th42500 2021. 12. 17. 18:00

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=1&contestProbId=AV5QPsXKA2UDFAUq&categoryId=AV5QPsXKA2UDFAUq&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=1&pageSize=10&pageIndex=1 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

💡 포인트

1️⃣ 입력받을 숫자의 개수 N 입력 받기

2️⃣ 입력받는 숫자들 오름차순 정렬

3️⃣ 중간값 구하기 👉 N은 항상 홀수이며, 배열이나 리스트 모두 인덱스는 0부터 시작

 

1️⃣ 배열 이용

✔ 소스코드

import java.util.*;

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

Arrays.sort()를 이용하여 배열 정렬 후, 가운데 인덱스의 값 출력 👉 인덱스는 0부터 시작하므로 전체 길이/2

 

2️⃣ List 이용

✔ 소스코드

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Solution {  // 2063.중간값 찾기

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int N = sc.nextInt();
		List<Integer> list = new ArrayList<>();
		
		for (int i = 0; i < N; i++) {
			list.add(sc.nextInt());
		}	
		Collections.sort(list);
		
		System.out.println(list.get(list.size()/2));
	}
}

Collections.sort()를 이용하여 리스트 정렬 후, 가운데 인덱스의 값 출력 👉 인덱스는 0부터 시작하므로 전체 길이/2

Comments