๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

https://school.programmers.co.kr/learn/courses/30/lessons/181188

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


1. ๋ฌธ์ œ

ํญ๊ฒฉ ๋ฏธ์‚ฌ์ผ ์ •์ˆ˜ ์Œ(s, e) ๊ฐ€ ๋ฐฐ์—ด๋กœ ์ฃผ์–ด์ง„๋‹ค. ์ด์— ๋งž์„œ ์š”๊ฒฉ ๋ฏธ์‚ฌ์ผ์„ ๋ฐœ์‚ฌํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ํ•„์š”ํ•œ ์š”๊ฒฉ ๋ฏธ์‚ฌ์ผ ๊ฐœ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์—ฌ๊ธฐ์„œ s, e๋Š” ์‹œ์ž‘ x์ขŒํ‘œ s, ๋ x์ขŒํ‘œ e๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

2. ํ’€์ด

๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ์ด๋‹ค.

๋ชจ๋“  target์„ e ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ํ›„ ๊ทธ๋ฆฌ๋””๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

target์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ณด๋ฉด์„œ

1. targets๋ฅผ e๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ

2. 1๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋ณผ ๋•Œ, ์‹œ์ž‘์ ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ๊ฒฝ์šฐ ans++ํ•ด์ฃผ๊ณ  ํ•ด๋‹น ํญ๊ฒฉ ๋ฏธ์‚ฌ์ผ์˜ ๋์ ์œผ๋กœ ์ด๋™ํ•œ๋‹ค.

 

์‹œ๊ฐ„๋ณต์žก๋„๋Š” Arrays.sort()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ์•…์˜ ๊ฒฝ์šฐ N(50๋งŒ log 50๋งŒ) + for๋ฌธ O(50๋งŒ)์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค.

 

 

3. ์ฝ”๋“œ

import java.util.*;
import java.io.*;

class Solution {
    public int solution(int[][] targets) {
        // e ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
        Arrays.sort(targets, (o1, o2) -> o1[1] - o2[1]);
        
        int ans = 0;
        int x = 0;
        for (int[] target : targets) {
            if (x <= target[0]) {
                x = target[1];
                ans++;
            }
        }
        
        return ans;
    }
}

4. ์‚ฌ๋‹ด

์žฌ๋ฐŒ์—ˆ๋‹ค. ์ž˜๋ชป๋œ๊ฒŒ ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“  ํ”ผ๋“œ๋ฐฑ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.