https://www.acmicpc.net/problem/20440
20440๋ฒ: ๐ต๋๊ฐ ์ซ์ด ์ซ์ด ๋๋ฌด ์ซ์ด ์ซ์ด ์ค์ง ๋ง ๋ด๊ฒ ์ฐ์ฉ๋์ง๋ง๐ต - 1
์ฒซ์งธ ์ค์ ์ง๋์ด์ ๋ฐฉ์ ์ถ์ ํ ๋ชจ๊ธฐ์ ๋ง๋ฆฟ์ N(1 ≤ N ≤ 1,000,000)๊ฐ ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ์ ์ค์ ๋ชจ๊ธฐ์ ์ ์ฅ ์๊ฐ TE๊ณผ ํด์ฅ ์๊ฐ TX์ด ์ฃผ์ด์ง๋ค. (0 ≤ TE < TX ≤ 2,100,000,000) ๋ชจ๊ธฐ๋ [TE, Tx)๋
www.acmicpc.net
ํ์ด๋ฐฉ๋ฒ
ํ์์ค๋ฐฐ์ , ๊ฐ์์ค๋ฐฐ์ .. ์ด ์๊ฐ๋ฌ๋ ๋ฌธ์
1. ๋ชจ๊ธฐ์ ์์์๊ฐ, ๋ ์๊ฐ์ ์ ๋ ฅ๋ฐ๊ณ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
2. ์ฐ์ ์์ ํ์ ์ฒซ ๋ชจ๊ธฐ์ ๋ ์๊ฐ์ ๋ฃ๊ณ ์งํ
3. ๋ชจ๊ธฐ ๋ฐฐ์ด์ ์ํํ๋ฉด์ ์ฐ์ ์์ ํ์ ์ ์ผ ์์ ๊ฐ์ด ๋ชจ๊ธฐ ์์์๊ฐ ๋ณด๋ค ์๋ค๋ฉด ํ์์ ๋นผ์ค๋ค.
4. ์ฐ์ ์์ ํ์ ์ ์ผ ์์ ๊ฐ์ด ๋ชจ๊ธฐ ์์์๊ฐ๊ณผ ๊ฐ๋ค๋ฉด ํ์์ ๋นผ์ฃผ๋๋ฐ, ๊ทธ ์ ์ ๋ ์ง์ ์ ๋ฐ๊ฟ์ค๋ค.
5. ํ์ฌ ๋ชจ๊ธฐ์ ๋๋๋ ์๊ฐ์ ๋ฃ๋๋ค.
6. ์ฐ์ ์์ ํ์ ํฌ๊ธฐ๊ฐ ํ์ฌ count ๋ณด๋ค ํฌ๋ค๋ฉด ๊ฒฐ๊ณผ๊ฐ์ ๊ฐฑ์ ํด์ค๋ค.
์์ค์ฝ๋
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class Main {
static int N;
static int[][] mos;
static int count, resultS, resultE;
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
mos = new int[N][2];
for (int i = 0; i < N; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int start = Integer.parseInt(st.nextToken());
int end = Integer.parseInt(st.nextToken());
mos[i][0] = start;
mos[i][1] = end;
}
//์ ๋ ฌ -> ์ค๋ฆ์ฐจ์
Arrays.sort(mos,(a,b) -> {
if(a[0] == b[0]) {
return a[1] - b[1];
}else {
return a[0] - b[0];
}
});
PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.add(mos[0][1]);
count = 1;
resultS = mos[0][0];
resultE = mos[0][1];
for (int i = 1; i < N; i++) {
while(!pq.isEmpty() && pq.peek() < mos[i][0]) {
pq.poll();
}
if(!pq.isEmpty() && pq.peek() == mos[i][0]) { //๋๋๋ ๋ถ๋ถ์ด ๊ฐ์ผ๋ฉด pq์์ ๋นผ์ค๋ค.
if(pq.peek() == resultE) {
resultE = mos[i][1];
}
pq.poll();
}
pq.add(mos[i][1]);
if(pq.size() > count) {
count = pq.size();
resultS = mos[i][0];
resultE = pq.peek();
}
}
System.out.println(count);
System.out.println(resultS + " "+ resultE);
}
}
๊ฒฐ๊ณผ
'Algorithm > java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค : ๊ดํธ ๋ณํ (1) | 2023.08.22 |
---|---|
๋ฐฑ์ค 14722 JAVA : ์ฐ์ ๋์ (0) | 2023.07.12 |
๋ฐฑ์ค 21943 JAVA : ์ฐ์ฐ์ต๋๋ก (0) | 2023.07.11 |
๋ฐฑ์ค 1939 JAVA : ์ค๋์ ํ (1) | 2023.07.11 |
๋ฐฑ์ค 4195 JAVA : ์น๊ตฌ ๋คํธ์ํฌ (0) | 2023.05.24 |