https://school.programmers.co.kr/learn/courses/30/lessons/181188
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์
- ๋ฐ์ฌํ ๋ฏธ์ฌ์ผ์ x์ถ์ ํํํ ์ง์ ํํ์ ๋ชจ์์ด๋ฉฐ ์ ์ ์ (s, e) ํํ๋ก ํํ๋จ
- y ์ถ์ ์ํ์ด ๋๋๋ก ๋ฏธ์ฌ์ผ์ ๋ฐ์ฌํ๋ฉฐ, ๋ฐ์ฌ๋ ๋ฏธ์ฌ์ผ์ ํด๋น x ์ขํ์ ๊ฑธ์ณ์๋ ๋ชจ๋ ํญ๊ฒฉ ๋ฏธ์ฌ์ผ์ ๊ดํตํ์ฌ ํ ๋ฒ์ ์๊ฒฉํ ์ ์์
- ๋จ, ๊ฐ๊ตฌ๊ฐ (s, e)๋ก ํํ๋๋ ํญ๊ฒฉ ๋ฏธ์ฌ์ผ์ s์ e์์ ๋ฐ์ฌํ๋ ์๊ฒฉ ๋ฏธ์ฌ์ผ๋ก๋ ์๊ฒฉํ ์ ์์ต
- ๊ฐ ํญ๊ฒฉ ๋ฏธ์ฌ์ผ์ x ์ขํ ๋ฒ์ ๋ชฉ๋ก targets์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ํญ๊ฒฉ ๋ฏธ์ฌ์ผ์ ์๊ฒฉํ๊ธฐ ์ํด ํ์ํ ์๊ฒฉ ๋ฏธ์ฌ์ผ ์์ ์ต์๊ฐ ๊ตฌํ๊ธฐ
์ ํ ์ฌํญ
- 1 ≤ targets์ ๊ธธ์ด ≤ 500,000
- targets์ ๊ฐ ํ์ [s,e] ํํ
- 0 ≤ s < e ≤ 100,000,000
ํ์ด
์์๋ก ๋์จ ๊ทธ๋ฆผ์ ๋ณด๋ ํ์์ค ๋ฌธ์ (https://www.acmicpc.net/problem/1931)๊ฐ ์๊ฐ์ด ๋ฌ๋ค.
ํ์์ค ๋ฌธ์ ๋ ํ์ ์์ ์๊ฐ๊ณผ ๋๋๋ ์๊ฐ์ด ์ฃผ์ด์ง ๋, ์ต๋ ์ฌ์ฉํ ์ ์๋ ํ์์ ์ต๋ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ํ์ง๋ง ์ด ๋ฌธ์ ์์๋ ์ต์๊ฐ์ ๊ตฌํ๋ ๊ฒ์ด๋ค.
์ ๊ทผ๋ฒ์ ๊ทธ๋ฆฌ๋๋ก ์ ์ฌํ ๊ฒ ๊ฐ์๊ณ , ๋ฏธ์ฌ์ผ ์์ ์ง์ ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํด๋ดค๋ค.
[1, 4], [3, 7], [4, 5], [4, 8], [5, 12], [10, 14], [11, 13]
๊ทธ๋ฆฌ๊ณ ๋ฏธ์ฌ์ผ ์ข ๋ฃ์์ ์ด ๋ค์ ๋ฏธ์ฌ์ผ ์์์์ ๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์์ง ํ์ธํ๊ณ , ๊ธฐ์ค์ ์ ๊ฐฑ์ ํ๊ณ , ๋ฏธ์ฌ์ผ์ ์๊ฒฉํ๋ ์์ ์ผ๋ก ์ผ์๋ค.
[1, 4], [3, 7], [4, 5], [4, 8], [5, 12], [10, 14], [11, 13]
์ด๋ ๊ฒ 3๊ฐ๊ฐ ๋์จ๋ค.
ํ์ง๋ง ๋ชจ๋ ํ ์คํธ ์ผ์ด์ค๋ฅผ ํต๊ณผํ์ง ๋ชปํ๋ค!
๋ฏธ์ฌ์ผ ์ข ๋ฃ ์ง์ ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํด๋ดค๋ค.
[1, 4], [4, 5], [3, 7], [4, 8], [5, 12], [11, 13], [10, 14]
๋๊ฐ์ด 3๊ฐ๊ฐ ๋์ค๋๋ฐ, ๋ฏธ์ฌ์ผ์ ์๊ฒฉํ๋ ์ง์ ์ด ๋ค๋ฅด๋ค.
๊ฒฐ๊ตญ ํ์์ค ๋ฌธ์ ์ ๋๊ฐ์ ํ์ด์ด๋ค. (https://programmingiraffe.tistory.com/57)
์ฝ๋
import java.util.*;
class Solution {
public int solution(int[][] targets) {
//1. ๋ฏธ์ฌ์ผ ์ข
๋ฃ์ง์ (e)์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
Arrays.sort(targets, (o1, o2) -> o1[1] == o2[1] ? o1[0] - o2[0] : o1[1] - o2[1]);
int prev_end = 0; //๊ธฐ์ค : ๋ฏธ์ฌ์ผ ์ข
๋ฃ์์ (e)
int answer = 0; //ํ์ํ ์๊ฒฉ ๋ฏธ์ฌ์ผ ์
//2. ๋ฏธ์ฌ์ผ ์์์ง์ ์ด ๊ธฐ์ค๋ณด๋ค ๊ฐ๊ฑฐ๋ ํฌ๋ฉด ๊ฐฑ์
for(int i = 0; i < targets.length; i++) {
if(targets[i][0] >= prev_end) {
prev_end = targets[i][1];
answer++;
}
}
return answer;
}
}
๊ฒฐ๊ณผ
๋ฐฐ์ด์
- 2์ฐจ์ ๋ฐฐ์ด ์ ๋ ฌ์ ๋๋ค์ ์ฌ์ฉ
- ์ ๋ ฌ ๊ธฐ์ค์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๋ ๋ค๋ฅด๋ค
'Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ๊ณผ์ ์งํํ๊ธฐ (0) | 2023.07.26 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ๋ชจ์ ์ฌ์ (0) | 2023.07.25 |
ํ๋ก๊ทธ๋๋จธ์ค - ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ (0) | 2023.04.30 |
ํ๋ก๊ทธ๋๋จธ์ค - ๊ดํธ ํ์ ํ๊ธฐ (0) | 2022.06.22 |
ํ๋ก๊ทธ๋๋จธ์ค - ์์ ๋์งํ (0) | 2022.06.21 |