알고리즘

백준 1183번 약속 (JAVA)

박카스마시며코딩 2023. 9. 27. 23:25

https://www.acmicpc.net/problem/1183

 

1183번: 약속

마법사 N명이 머글 문화를 이해하기 위해 머글과 약속을 잡았다. 각 마법사는 한 명의 머글을 만날 예정이다. 하지만, 마법사는 약속 시간보다 빨리 또는 늦게 도착할 수 있기 때문에 고민에 빠

www.acmicpc.net

 

저는 규칙을 찾고 이를 구현하여 문제를 해결하였습니다.

먼저 홀수라면 1 짝수하면 정 가운데 두개의 간격으로 문제를 해결하였습니다/

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.StringTokenizer;
import java.util.function.Function;

public class Main {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        Function<String,Integer> stoi = Integer::parseInt;
        int n = stoi.apply(br.readLine());
        StringTokenizer st;
        List<Integer> list = new LinkedList<>();
        for(int i = 0 ; i < n ; i++){
            st = new StringTokenizer(br.readLine());
            int a = stoi.apply(st.nextToken());
            int b = stoi.apply(st.nextToken());
            list.add(a-b);
        }
        if(n % 2 != 0){
            System.out.println(1);
            return ;
        }
        Collections.sort(list);
        System.out.println( Math.abs(list.get(n/2) - list.get(n/2-1)) + 1);
    }
}