๋ฌธ์
https://www.acmicpc.net/problem/2294
๋ด ๋ฌธ์ ํ์ด
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class BOJ_19598 {
static class Meetings implements Comparable<Meetings> {
int s, e;
public Meetings(int s, int e) {
super();
this.s = s;
this.e = e;
}
@Override
public int compareTo(Meetings o) {
return this.s - o.s; // ์์ ์๊ฐ ๊ธฐ์ค ์ ๋ ฌ
}
}
public static void main(String[] args) throws Exception {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int n = Integer.parseInt(in.readLine());
Meetings[] meetings = new Meetings[n];
for(int i = 0; i < n; i++) {
st = new StringTokenizer(in.readLine());
meetings[i] = new Meetings(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()));
}
Arrays.sort(meetings);
PriorityQueue<Integer> endTimes = new PriorityQueue<>();
endTimes.add(meetings[0].e);
for(int i = 1; i < meetings.length; i++) {
if(endTimes.peek() <= meetings[i].s) {
endTimes.poll();
}
endTimes.add(meetings[i].e);
}
System.out.println(endTimes.size());
}
}
๐ Greedy ๋ฌธ์
- ์์ ์๊ฐ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ณ , ์ฒซ ๋ฒ์งธ ํ์๋ถํฐ ๋๋๋ ์๊ฐ์ PriorityQueue์ธ endTimes์ ๋ฃ์๋ค.
- ์ฒซ ๋ฒ์งธ ํ์๋ ๋น๊ต ๋์์ด ์์ผ๋ฏ๋ก ๊ทธ๋ฅ ๋ฃ์ด์ฃผ์๊ณ ,
๋ ๋ฒ์งธ ํ์๋ถํฐ๋ endTimes์ ์ฒซ ๋ฒ์งธ ๋๋๋ ์๊ฐ๊ณผ ๋น๊ตํ์ฌ ๋ฃ๋ ๊ฒ์ ๋ฐ๋ณตํ๋ค. - ํ์ฌ ํ์์ ์์ ์๊ฐ์ด endTimes ์ฒซ ๋ฒ์งธ ๋๋๋ ์๊ฐ๊ณผ ๊ฐ๊ฑฐ๋ ๋๋ฆฌ๋ค๋ฉด,
ํ๋์ ํ์์ค์ ๊ณต์ ํ ์ ์๋ ๊ฒ์ด๋ฏ๋ก endTimes์ ์ฒซ ๋ฒ์งธ ํ์๋ฅผ ๊บผ๋ด์ฃผ๊ณ ,
ํ์ฌ ํ์์ ๋๋๋ ์๊ฐ์ ๋์ ํด์ ๋ฃ์ด์ฃผ์๋ค. (== ํด๋น ํ์์ค์ ๋๋๋ ์๊ฐ ์ ๋ฐ์ดํธ) - ๋ชจ๋ ํ์์ค ํ์์ ๋๋ ํ ์์ฑ๋ endTimes์ size๊ฐ ์ด ํ์์ค์ ๊ฐ์๊ฐ ๋๋ค.
๐ก ํผ๋๋ฐฑ
- ๊ทธ๋ฆฌ๋๋ ํญ์ ์ข ํท๊ฐ๋ฆฌ๋ ๋๋์ด ์๋๋ผ..!! ์ด ๋ฌธ์ ๋ ๋ง์ฐฌ๊ฐ์ง,,
๋ง์ด ํ์ด๋ด์ผ ํ ๊ฒ ๊ฐ๋ค.
'2๏ธโฃ Java > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java Algorithm] ํ์ดํ ์ฎ๊ธฐ๊ธฐ 1 BOJ #17070 (2) | 2022.09.30 |
---|---|
[Java Algorithm] ์ธ๊ตฌ ์ด๋ BOJ #16234 (0) | 2022.09.22 |
[Java Algorithm] ๋์ 2 BOJ #2294 (0) | 2022.08.31 |
[Java Algorithm] ABCDE BOJ #13023 (0) | 2022.08.31 |
[Java Algorithm] ์ ๋ก์์ฝ BOJ #10026 (0) | 2022.08.31 |
๋๊ธ