π λ¬Έμ λ§ν¬
https://www.acmicpc.net/problem/19598
λ¬Έμ μμ½
- Nκ°μ νμκ° μ£Όμ΄μ§ λ, λμμ λ κ° μ΄μμ νμλ₯Ό μ§νν μ μμ.
- λ¨, νμκ° λλλ λμμ λ€μ νμκ° μμ κ°λ₯.
- λͺ¨λ νμλ₯Ό μ§ννλ λ° νμν μ΅μ νμμ€ κ°μλ₯Ό ꡬν¨
π νμ΄ λ° μκ³ λ¦¬μ¦
- νμλ₯Ό μμ μκ° κΈ°μ€μΌλ‘ μ λ ¬
- νμκ° μΌμ° μμνλ μμλλ‘ λ°°μ νκΈ° μν΄ μ λ ¬.
- κ°μ μμ μκ°μ΄λΌλ©΄, μ’ λ£ μκ° κΈ°μ€ μ λ ¬μ΄ νμν μλ μμ.
- μ°μ μμ ν(PriorityQueue) νμ©
- νμ¬ μ§ν μ€μΈ νμλ€μ μ’ λ£ μκ°μ μ μ₯νμ¬ κ΄λ¦¬.
- μλ‘μ΄ νμλ₯Ό μμν λ κ°μ₯ 빨리 λλλ νμλ³΄λ€ λ¦κ² μμνλ©΄ κΈ°μ‘΄ νμμ€μ μ¬μ¬μ©.
- μ°μ μμ νμ ν¬κΈ°κ° κ³§ νμν μ΅μ νμμ€ κ°μ
- μ§ν μ€μΈ νμμ μ’ λ£ μκ°μ΄ μλ‘μ΄ νμμ μμ μκ°λ³΄λ€ μκ±°λ κ°λ€λ©΄ νμμ€μ λ°ν(poll()).
- κ·Έλ μ§ μλ€λ©΄ μλ‘μ΄ νμμ€μ΄ νμνλ―λ‘ μ’ λ£ μκ°μ μΆκ°(add()).
π‘ μ½λ
public class Baekjoon_19598 {
static class Meeting{
int start,end;
Meeting(int start,int end){
this.start=start;
this.end=end;
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
List<Meeting> meetings = new ArrayList<>();
for(int i =0 ;i<n;i++){
meetings.add(new Meeting(sc.nextInt(),sc.nextInt()));
}
// νμ μμμμΌλ‘ μ λ ¬
meetings.sort((a,b)-> a.start - b.start);
PriorityQueue<Integer> pq = new PriorityQueue<>();
for(Meeting meeting : meetings){
pq.add(meeting.end);
if(pq.peek() <= meeting.start){
pq.poll();
}
}
System.out.println(pq.size());
}
}
π μκ° λ³΅μ‘λ λΆμ
- νμ μ λ ¬: O(N log N)
- μ°μ μμ ν κ΄λ¦¬: O(N log N)
- μ΄ μκ° λ³΅μ‘λ: O(N log N)
'μκ³ λ¦¬μ¦(JAVA)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ°±μ€ 3078 "μ’μ μΉκ΅¬" (JAVA) (0) | 2025.02.15 |
---|---|
λ°±μ€ 1946 "μ μ μ¬μ" (JAVA) (0) | 2025.02.15 |
λ°±μ€ 17503 "λ§₯μ£Ό μΆμ " (JAVA) (1) | 2025.02.14 |
λ°±μ€ 1780 "μ’ μ΄μ κ°μ" (JAVA) (0) | 2025.02.08 |
λ°±μ€ 1992 "μΏΌλνΈλ¦¬" (JAVA) (0) | 2025.02.08 |