1 ๋ถ„ ์†Œ์š”

๐Ÿ“ [B1_3985] ๋กค ์ผ€์ดํฌ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;



public class Main {
    static StringTokenizer st;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        // ๋กค ์ผ€์ดํฌ ๊ธธ์ด
        int L = Integer.parseInt(br.readLine());

        // ๋ฐฉ์ฒญ๊ฐ์˜ ์ˆ˜
        int N = Integer.parseInt(br.readLine());

        // ์‹œ์ž‘๊ณผ ๋ ๊ฐ’ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด
        int[][] arr = new int[N+1][2];

        // ์กฐ๊ฐ ๋ฐ›์€์ง€ ์ฒดํฌ
        boolean[] check = new boolean[L+1];

        // ์ œ์ผ ๋งŽ์€ ์กฐ๊ฐ์„ ๋ฐ›์„ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•˜๊ณ  ์žˆ๋˜ ๋ฐฉ์ฒญ๊ฐ์˜ ๋ฒˆํ˜ธ
        int max_index = -1;
        int index = 0;

        // ์ œ์ผ ๋งŽ์€ ์กฐ๊ฐ์„ ๋ฐ›์€ ๋ฐฉ์ฒญ๊ฐ์˜ ๋ฒˆํ˜ธ
        int real_max = -1;
        int cntt = 0;
        int res = 0;

        for(int i=1; i<=N; i++){
            st = new StringTokenizer(br.readLine(), " ");
            // start
            int start = Integer.parseInt(st.nextToken());
            // end
            int end = Integer.parseInt(st.nextToken());
            arr[i][0] = start;
            arr[i][1] = end;

            // ์ œ์ผ ๋งŽ์ด ๋ฐ›์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ธฐ๋Œ€ํ•œ ๋ฐฉ์ฒญ๊ฐ ๋ฒˆํ˜ธ ๊ตฌํ•˜๊ธฐ
            int minus = end - start;
            if(max_index == minus){
                continue;
            }
            max_index = Math.max(max_index, minus);
            if(max_index == minus){
                index = i;
            }


            cntt = 0;
            // ์กฐ๊ฐ ์ฒดํฌ ํ•ด์ฃผ๊ธฐ
            for(int j=start; j<=end; j++){
                if(!check[j]) {
                    check[j] = true;
                    cntt++;
                }
                else if(check[j]){
                    continue;
                }
            }
            if(real_max == cntt){
                continue;
            }
            real_max = Math.max(real_max, cntt);
            if(real_max == cntt){

                res = i;
            }

        }
        sb.append(index).append("\n").append(res);

        System.out.println(sb);
    }
}

๐Ÿค” ๋‚˜์˜ ์ƒ๊ฐ

๋ฌธ์ œ๊ฐ€ ์›ํ•˜๋Š” ์กฐ๊ฐ์ด ์žˆ๋Š”๋ฐ ์ˆœ์„œ๋Œ€๋กœ ์กฐ๊ฐ์„ ๋‚˜๋ˆ ์ฃผ๋‹ค ๋ณด๋‹ˆ ์•ž์— ์‚ฌ๋žŒ์ด ์›ํ•˜๋Š” ์กฐ๊ฐ์ด ๊ฐ™์€ ๊ฒฝ์šฐ ์•ž์— ์‚ฌ๋žŒ์ด ๋จผ์ € ๊ฐ€์ ธ๊ฐ€๋Š” ๋ฌธ์ œ์ด๋‹ค.
์—ฌ๊ธฐ์„œ ์›ํ•˜๋Š” ์กฐ๊ฐ์œผ๋กœ ๋‹ค ๋ฐ›๋Š”๋‹ค๋ฉด ๊ฐ€์žฅ ๋งŽ์ด ๋ฐ›์„ ๋ฐฉ์ฒญ๊ฐ์˜ ๋ฒˆํ˜ธ์™€ ์‹ค์ œ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ๋ฐ›๋Š” ๋ฐฉ์ฒญ๊ฐ์˜ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๋ฐ
ํ•œ๊ฐ€์ง€ ์กฐ๊ฑด์ด ๋” ์กด์žฌํ•œ๋‹ค. ๋ฐ”๋กœ ๋ฐ›์€ ์กฐ๊ฐ์˜ ์ˆ˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด ์ „์— ๋ฐ›์€ ๋ฐฉ์ฒญ๊ฐ์˜ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
๋˜ ์ด ์กฐ๊ฑด์„ ๊นŒ๋จน๊ณ  ์™œ ์•ˆ๋˜์ง€ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค..ใ…‹ใ…‹ใ…‹ ๊ทธ๋Ÿฌ๋‚˜ ์งง์€ ์‹œ๊ฐ„๋™์•ˆ ^^
์›ํ•˜๋Š” ์กฐ๊ฐ์˜ ๊ฐœ์ˆ˜๋Š” start์™€ end์˜ ์ฐจ๋ฅผ ํ†ตํ•ด ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๊ฐ€์ง„ ๋ฐฉ์ฒญ๊ฐ์˜ index๋ฅผ ์ถœ๋ ฅํ•ด ์ฃผ์—ˆ๊ณ 
์‹ค์ œ๋กœ ๋ฐ›์€ ์กฐ๊ฐ์˜ ๊ฐœ์ˆ˜๋Š” boolean ๋ฐฐ์—ด์„ ํ†ตํ•ด ๋ฐ›์€ ์กฐ๊ฐ์„ ์ฒดํฌํ•ด์ฃผ์–ด์„œ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ํ•ด์ฃผ์—ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ๋งŽ์€ ์กฐ๊ฐ์„ ๋ฐ›์€ ๋ฐฉ์ฒญ๊ฐ์˜ index๋ฅผ ์ถœ๋ ฅํ•ด ์ฃผ์—ˆ๋‹ค.
์–ด๋ ต์ง€ ์•Š์€ ๋ฌธ์ œ์˜€๋‹ค.

ํƒœ๊ทธ: , , ,

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

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