티스토리 뷰
그리디로 풀 수 있는문제라고 해야할까?!
서로 겹치는 부분이 있다면 방에 갈 수 없다
문제를 풀기 위해서는 뒤부터 보자!
나는 pq를 사용했다
내가 더 뒤에있는 사람부터 보면서 구간을 [a,b]라고해보자
그럼 나의 뒤에있는 사람은 [a`,b`]라고 할 때
1) 갈 수 있는경우 a`<b
이 때는 다시 a`값을 가지고 그 다음 친구를 보면된다!
2) 갈 수 없는경우 a`>b
이 때는 구간이 겹친다 따라서 a`를 저장해뒀다가 다시 pq에 넣어두자
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include <algorithm>
#include <queue>
#include <iostream>
using namespace std;
int n, t;
int main() {
scanf(" %d", &t);
for (int tc = 1; tc <= t; tc++) {
scanf(" %d", &n);
priority_queue<pair<int, int>> pq;
for (int i = 0; i < n; i++) {
int x, y; scanf(" %d %d", &x, &y);
int a = max(x, y); int b = min(x, y);
}
int ans = 0;
int s = pq.size();
int prev = 1e9;
vector<pair<int, int>> vt;
for (int i = 0; i < s; i++) {
if (p.first < prev) prev = p.second;
else vt.push_back(p);
}
ans = a;
}
printf("#%d %d\n", tc, ans);
}
}
|
'알고리즘 > SW Expert Academy' 카테고리의 다른 글
[SWEA] 4534 트리 흑백 색칠 (0) | 2020.03.02 |
---|---|
[SWEA] 1247 최적경로 (0) | 2020.02.19 |
[SWEA] 1225 암호생성기 (0) | 2020.02.03 |
[SWEA] 1855 영준이의 진짜 BFS (0) | 2020.01.15 |
[SWEA] 3135 홍준이의 사전놀이 (0) | 2020.01.15 |
댓글