728x90
딱히 큰 설명이 필요한 문제는 아닌것 같다
각 물웅덩이의 좌표를 담아서 오름차순 정렬한뒤,
물웅덩이 범위 내에 있으면 판자를 놓고 다음 좌표를 넘어갈때, L 만큼 넘어가면 된다
N 의 최대가 10000 이므로 시간복잡도에 유의해야한다.
- C++
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
int N, L, answer;
vector<pair<int, int>> pools;
int main() {
cin.tie(0); ios_base::sync_with_stdio(0);
cin >> N >> L;
for (int i = 0; i < N; ++i) {
int start, end;
cin >> start >> end;
pools.push_back({start, end});
}
sort(pools.begin(), pools.end());
int next = 0;
for (int i = 0; i < pools.size(); ++i) {
if (next < pools[i].first) next = pools[i].first;
while(next < pools[i].second) {
next += L;
answer++;
}
}
cout << answer;
return 0;
}
|
cs |
728x90
'PS' 카테고리의 다른 글
BOJ 1818 - 책정리 (0) | 2021.03.20 |
---|---|
BOJ 17828 - 문자열 화폐 (0) | 2021.03.20 |
DP 와 누적합 (0) | 2021.03.18 |
BOJ 14728 - 벼락치기 (0) | 2021.03.18 |
BOJ 17845 - 수강 과목 (0) | 2021.03.18 |