https://school.programmers.co.kr/learn/courses/30/lessons/181188
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. ์ฌ๋ด
์ฌ๋ฐ์๋ค. ์๋ชป๋๊ฒ ์๋ค๋ฉด ์ธ์ ๋ ํผ๋๋ฐฑ ๋ถํ๋๋ฆฝ๋๋ค.
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์์ - Java (0) | 2023.10.11 |
---|---|
[Programmers] ์ ํ๋ฒํธ ๋ชฉ๋ก - Java (0) | 2023.10.04 |
[Programmers] ๋ชจ์์ฌ์ - Java (0) | 2023.10.03 |
[Programmers] ์ ๋ ฅ๋ง์ ๋๋ก ๋๋๊ธฐ - Java (0) | 2023.09.20 |
[Programmers] ํผ๋ก๋ - Java (0) | 2023.09.20 |