https://www.acmicpc.net/problem/2548
[풀이]
- 그리디, 정렬과 관련한 유형의 문제였습니다.
- 배열의 값들의 차이를 최소로하는 수를 얻어야 하기 때문에 중위값을 출력하면 됩니다.(배열의 길이를 활용)
[코드]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static int solve(int[] arr) {
if (arr.length == 1)
return arr[0];
if (arr.length % 2 == 0) {
return arr[arr.length / 2 - 1];
} else {
return arr[arr.length / 2 + 1];
}
}
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];
int answer = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
answer = solve(arr);
System.out.println(answer);
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 1535번 : 안녕(Java) (0) | 2021.09.18 |
---|---|
0915 TIL (오늘 하루 정리하기) (0) | 2021.09.15 |
백준 17413번 : 단어 뒤집기 2(Java) (0) | 2021.09.10 |
백준 1654번 : 랜선 자르기(Java) (0) | 2021.09.10 |
백준 2470번 : 두 용액(Java) (0) | 2021.09.09 |