[๋ฐฑ์ค€] 20440. ๐ŸŽต๋‹ˆ๊ฐ€ ์‹ซ์–ด ์‹ซ์–ด ๋„ˆ๋ฌด ์‹ซ์–ด ์‹ซ์–ด ์˜ค์ง€ ๋งˆ ๋‚ด๊ฒŒ ์ฐ์ฉ๋Œ€์ง€๋งˆ๐ŸŽต - 1

2 ๋ถ„ ์†Œ์š”

๋ฌธ์ œ ๋งํฌ

[๋ฐฑ์ค€] 20440. ๐ŸŽต๋‹ˆ๊ฐ€ ์‹ซ์–ด ์‹ซ์–ด ๋„ˆ๋ฌด ์‹ซ์–ด ์‹ซ์–ด ์˜ค์ง€ ๋งˆ ๋‚ด๊ฒŒ ์ฐ์ฉ๋Œ€์ง€๋งˆ๐ŸŽต - 1


ํ’€์ด ๊ณผ์ •

์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์‚ฌ์šฉํ•ด ํ’€์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.


์œ„์™€ ๊ฐ™์€ ๋ชจ๊ธฐ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ๋ชจ๊ธฐ โ‘ ์ด ๋จผ์ € ๋ฐฉ์— ์ง„์ž…ํ•œ ์ดํ›„์— ๋ชจ๊ธฐ โ‘ก๊ฐ€ ์ง„์ž…ํ•ด์•ผ ๋น„๋กœ์†Œ ๊ฐ™์€ ์‹œ๊ฐ„๋Œ€์— ๋‘ ๋งˆ๋ฆฌ๊ฐ€ ๊ณต์กดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ชจ๊ธฐ โ‘ข์€ ๋ชจ๊ธฐ โ‘ ๊ณผ โ‘ก๊ฐ€ ์ง„์ž…ํ•œ ์ดํ›„์— ๋“ค์–ด์™€์•ผ ๋™์‹œ๊ฐ„๋Œ€์— ์ตœ๋Œ€ ์„ธ ๋งˆ๋ฆฌ๊ฐ€ ๊ณต์กดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ชจ๊ธฐ๊ฐ€ ์ง„์ž…ํ•˜๋Š” ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์ตœ๋Œ€ ๋ชจ๊ธฐ ๋งˆ๋ฆฟ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๊ธฐ์—, ์ง„์ž… ์‹œ๊ฐ„์„ ์˜ค๋ฆ„์ฐจ์ˆœ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•ด์ค๋‹ˆ๋‹ค.


๋จผ์ € ์ฒซ ๋ฒˆ์งธ ๋ชจ๊ธฐ๋ฅผ ์šฐ์„ ์ˆœ์œ„ ํ์— ๋„ฃ์–ด์ค๋‹ˆ๋‹ค. ์ด ๋•Œ, ํ์˜ ์‚ฌ์ด์ฆˆ๋Š” 1์ด๊ณ , ์ด๋Š” ๊ณง ์ตœ๋Œ€ ๋ชจ๊ธฐ๊ฐ€ 1๋งˆ๋ฆฌ์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ชจ๊ธฐ๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์žˆ๋Š” ์‹œ๊ฐ„๋Œ€๋Š” ๋ชจ๊ธฐ โ‘ ์˜ ์‹œ๊ฐ„๋Œ€, ์ฆ‰ [2, 16) ์ด ๋ฉ๋‹ˆ๋‹ค.


๋‹ค์Œ ๋ฒˆ ๋ชจ๊ธฐ๊ฐ€ ๋ฐฉ ์•ˆ์— ์žˆ๋Š” ๋ชจ๊ธฐ๋“ค ์ค‘ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ๋ชจ๊ธฐ๊ฐ€ ๋‚˜๊ฐ€๊ธฐ ์ „์— ๋“ค์–ด๊ฐ„๋‹ค๋ฉด, ๋ฐฉ ์•ˆ ์ตœ๋Œ€ ๋ชจ๊ธฐ ์ˆ˜๋Š” ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ฐฉ ์•ˆ์—๋Š” ํ•œ ๋งˆ๋ฆฌ์˜ ๋ชจ๊ธฐ(๋ชจ๊ธฐ โ‘ )๊ฐ€ ์žˆ์œผ๋ฉฐ, ๊ทธ ๋ชจ๊ธฐ๋Š” 16์— ๋‚˜๊ฐ‘๋‹ˆ๋‹ค. ํ•ด๋‹น ๋ชจ๊ธฐ๊ฐ€ ๋‚˜๊ฐ€๊ธฐ ์ „์— ๋ชจ๊ธฐ โ‘ก๊ฐ€ ๋“ค์–ด์˜ค๊ฒŒ ๋˜๋ฏ€๋กœ(๋ชจ๊ธฐ โ‘ก์˜ ์ž…์žฅ : 6 < ๋ชจ๊ธฐ โ‘ ์˜ ํ‡ด์žฅ : 16) ์ตœ๋Œ€ ๋ชจ๊ธฐ๋Š” 2๋งˆ๋ฆฌ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ตœ๋Œ€ ๋ชจ๊ธฐ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ–ˆ์œผ๋ฏ€๋กœ, ๋ฐฉ์— ๋ง‰ ๋“ค์–ด์˜จ ๋ชจ๊ธฐ์˜ ์ž…์žฅ ๋ฐ ํ‡ด์žฅ ์‹œ๊ฐ„์„ ๊ณ ๋ คํ•ด ๊ตฌ๊ฐ„์„ ์„ค์ •ํ•ด์ค๋‹ˆ๋‹ค.


๋ฐฉ์— ์žˆ๋Š” ๋ชจ๊ธฐ๋“ค ์ค‘ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ๋ชจ๊ธฐ์˜ ํ‡ด์žฅ ์‹œ๊ฐ„๊ณผ ๋‹ค์Œ ๋ฒˆ ๋“ค์–ด์˜ค๋Š” ๋ชจ๊ธฐ์˜ ์ž…์žฅ ์‹œ๊ฐ„์ด ๋ฐฉ ์•ˆ ์ตœ๋Œ€ ๋งˆ๋ฆฟ์ˆ˜ ๋ฅผ ๊ฒฐ์ •์ง“์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ˜„์žฌ ๋ฐฉ ์•ˆ์—๋Š” 3๋งˆ๋ฆฌ์˜ ๋ชจ๊ธฐ๊ฐ€ ์žˆ๊ณ , ๋ฐฉ ์•ˆ ๋ชจ๊ธฐ๋“ค ์ค‘ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ๋ชจ๊ธฐ(์œ„ ๊ทธ๋ฆผ์ƒ ๋นจ๊ฐ„์ƒ‰)์˜ ํ‡ด์žฅ ์‹œ๊ฐ„์ด 10, ๋‹ค์Œ ๋ฒˆ ๋“ค์–ด์˜ค๋Š” ๋ชจ๊ธฐ(์œ„ ๊ทธ๋ฆผ์ƒ ํŒŒ๋ž€์ƒ‰)์˜ ์ž…์žฅ ์‹œ๊ฐ„์ด 5์ด๋ฉด, ๋ชจ๊ธฐ๋Š” ์ตœ๋Œ€ 4๋งˆ๋ฆฌ๊ฐ€ ์กด์žฌ(์‹œ๊ฐ„ 5๋ถ€ํ„ฐ ์‹œ๊ฐ„10๊นŒ์ง€)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ชจ๊ธฐ์˜ ํ‡ด์žฅ ์‹œ๊ฐ„ ์ •๋ณด๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์šฐ์„ ์ˆœ์œ„ ํ์˜ ์ •๋ ฌ ๊ธฐ์ค€์— ๋Œ€์ž…ํ•ฉ๋‹ˆ๋‹ค.


๋ชจ๊ธฐ โ‘ข์€ ๋ฐฉ ์•ˆ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ๋ชจ๊ธฐ(๋ชจ๊ธฐ โ‘ก)๊ฐ€ ๋‚˜๊ฐ€๊ธฐ ์ „์— ๋“ค์–ด์˜ค๋ฏ€๋กœ, ์ตœ๋Œ€ 3 ๋งˆ๋ฆฌ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๊ธฐ์˜ ์ตœ๋Œ€์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋ฏ€๋กœ, ๊ฐ€์žฅ ๋งŽ์ด ๊ณต์กดํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„๋Œ€๋ฅผ ๋ณ€๊ฒฝํ•ด์ค๋‹ˆ๋‹ค.


์ฝ”๋“œ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        int N = Integer.parseInt(br.readLine());
        Pair[] pairs = new Pair[N];

        for (int i = 0; i < N; i++) {
            st = new StringTokenizer(br.readLine());
            int Te = Integer.parseInt(st.nextToken());
            int Tx = Integer.parseInt(st.nextToken());

            pairs[i] = new Pair(Te, Tx, 1);
        }

        Arrays.sort(pairs, new Comparator<Pair>() {
            @Override
            public int compare(Pair o1, Pair o2) {
                return Integer.compare(o1.start, o2.start);
            }
        });

        PriorityQueue<Pair> pq = new PriorityQueue<>(new Comparator<Pair>() {
            @Override
            public int compare(Pair o1, Pair o2) {
                return Integer.compare(o1.end, o2.end);
            }
        });

        int maxCnt = 0, Tem = 0, Txm = 0;

        for (Pair p : pairs) {
            while (!pq.isEmpty() && p.start >= pq.peek().end) pq.poll();

            pq.add(p);

            if (pq.size() > maxCnt) {
                maxCnt = pq.size();
                Tem = p.start;
                Txm = pq.peek().end;
            } else if (pq.size() == maxCnt && Txm == p.start) {
                Txm = p.end;
            }
        }

        System.out.println(maxCnt + "\n" + Tem + " " + Txm);
    }

    static class Pair {
        int start, end;

        public Pair(int start, int end, int cnt) {
            this.start = start;
            this.end = end;
        }
    }
}

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ