1. λ¬Έμ μ€λͺ π
νμμκ°μ μμκ³Ό λμ΄ μ£Όμ΄μ§ λ, μ΅λν λ§μ κ°μλ₯Ό νμμ€μ λ°°μ ν΄λΌ (A κ°μμ λμκ°κ³Ό B κ°μμ μμ μκ°μ΄ κ°μΌλ©΄ μ°λ¬μ λ°°μ ν μ μλ κ²μΌλ‘ κ°μ£Όνλ€.)
2. μ κ·Ό λ°©μ ποΈ
KEY WORDS
: GREEDY ALGORITHM
Greedy Algorithmμ μ νμ μκ°μ μ΅μ μ μ νμ§λ₯Ό κ³ λ₯΄λ κ²μ΄ μ 체 λ¬Έμ μμ μ΅μ μ μ νμ νλ κ²μ΄λΌ κ°μ νλ μκ³ λ¦¬μ¦μ΄λ€.
빨리 λλλ μμΌλ‘ νμλ₯Ό μ λ ¬
μ μΌ λΉ¨λ¦¬ λλλ νμκ° AλΌλ©΄ A νμ μ΄νμ μμν μ μμΌλ©΄μλ, μ΅λν 빨리 λλλ νμλ₯Ό μ ννλ κ²μ΄ μ 체 λ¬Έμ μμ λ΄€μ λ μ΅λν λ§μ κ°μλ₯Ό κ³ λ₯Ό μ μλ λ°©λ²μ.
2λ²μ λͺ¨λ νμλ₯Ό λμ보며 λ μ΄μ κ³ λ₯Ό μ μλ νμκ° μμ λκΉμ§ λ°λ³΅
3. μ½λ μκ° π
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int [][] lecture = new int [N][2];
for(int i = 0; i < N; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
lecture[i][0] = Integer.parseInt(st.nextToken());
lecture[i][1] = Integer.parseInt(st.nextToken());
}
Arrays.sort(lecture, (a,b) -> {
if(a[1] == b[1]) return a[0] - b[0];
return Integer.compare(a[1], b[1]);
});
int end_time = lecture[0][1];
int cnt = 1;
for(int i = 1; i < N; i++){
if(lecture[i][0] < end_time) continue;
cnt++;
end_time = lecture[i][1];
}
System.out.println(cnt);
}
}
4. λ°°μ΄ κ²λ€ π―
νμλ₯Ό κ·Έμ 빨리 λλλ μμΌλ‘ μ λ ¬νμ λλ μ ν리λ λ°λ‘κ° μ‘΄μ¬νλ€. λ€μμ 보μ
"νμ κ°μ": 2
4 4
1 4
λ€μκ³Ό κ°μ΄ νμκ° 1μκ° μμ λλλ κ²½μ°μ΄λ€. μ΄μ κ°μ΄ μ’ λ£ μκ°μ΄ κ°μ κ²½μ° μμ μκ°μ΄ λΉ λ₯Έ μμΌλ‘ μ λ ¬νμ§ μμΌλ©΄, νμλ₯Ό λ λ§μ΄ μ§νν μ μλ κΈ°νλ₯Ό λμΉλ€.
μ΄κ² λλ¬Έμ μ²μμ νλ Έλ€ π