알고리즘/boj
BOJ 1449 수리공 항승
칼퇴시켜주세요
2023. 1. 5. 16:33
728x90

첫째 줄에 물이 새는 곳의 개수 N과 테이프 길이L 이 주어진다. 풀이방법은 시작점(start)을 잡고 시작점을 기준으로 물이 새는 곳(v[i]) 까지 거리가 L <= v[i] - start를 만족한다면 count를 증가 시켜주고 시작점을 이동시겨준다.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
vector<int> v;
int n, l;
cin >> n >> l;
for(int i = 0; i < n; i++)
{
int num;
cin >> num;
v.push_back(num);
}
if(l == 1)
{
cout << v.size();
return 0;
}
else
{
sort(v.begin(), v.end());
int cnt = 0;
int start = v[0];
int length = 0;
for(int i = 1; i < v.size(); i++)
{
if(l<=v[i] - start)
{
cnt++;
start =v[i];
}
}
cout << cnt+1;
}
}
반응형