[이것이 코딩 테스트다 with Python] 안테나(Java)
Goal
“이것이 코딩 테스트다 with Python” 교재의 문제를 분석하고 코드와 함께 이해해보기 위한 글입니다.
문제 분석
집의 위치값을 배열에 저장한 후 오름차순 정렬을 해서 중앙값을 꺼내는 방법으로 답을 구할 수 있습니다.
집 갯수가 홀수인 경우에는 중앙값, 짝수인 경우에는 중앙에서 더 작은 위치를 얻어내도록 하면 문제의 조건대로 답을 출력해냅니다.
코드 구현
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Antenna { //p360
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] home = new int[n];
for (int i = 0; i < n; i++) {
home[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(home);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
if (n % 2 == 0) bw.write(String.valueOf(home[n / 2 - 1]));
else bw.write(String.valueOf(home[n / 2]));
bw.close();
br.close();
}
}
This post is licensed under CC BY 4.0 by the author.