Post

[이것이 코딩 테스트다 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.