풀이과정
일단 위치 입력 받은 것을 sort함수로 정렬해준다.
물을 막을 때, 적어도 그 위치의 좌우 0.5만큼 간격을 줘야한다고 했으니 loc[i] - start에 1씩 더해준다.
그 값이 테이프의 길이보다 더 클 경우 개수를 카운트해주며 시작지점(start)을 loc[i]로 업데이트해준다.
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int N, L, loc[1001];
cin >> N >> L;
for (int i = 0; i < N; i++) {
cin >> loc[i];
}
sort(loc, loc + N);
int start = loc[0], res = 1;
for (int i = 1; i < N; i++) {
if (loc[i] - start + 1 > L) {
res++;
start = loc[i];
}
}
cout << res;
}
'🍞 Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 1766 문제집 c++ (0) | 2022.09.02 |
---|---|
[백준] 1005 ACM Craft c++ (0) | 2022.09.02 |
[백준] 1647 도시 분할 c++ (0) | 2022.09.02 |
[백준] 1197 최소 스패닝 트리 c++ (0) | 2022.09.02 |
[백준] 17396 백도어 c++ (0) | 2022.09.02 |