문제 링크 : https://www.acmicpc.net/problem/1449
1449번: 수리공 항승
첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나
www.acmicpc.net
그리디알고리즘과 정렬을 활용하는 문제입니다.
코드
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int N, L;
vector<int> v;
cin >> N >> L;
for(int i = 0; i < N; i++)
{
int a;
cin >> a;
v.push_back(a);
}
sort(v.begin(), v.end());
int f = 0;
int count_tape = 0;
for(int i = 1; i < N; i++)
{
if(L-1 < v[i]-v[f])
{
count_tape++;
f=i;
}
if(i == (N - 1))
{
count_tape++;
}
}
if(N == 1)
{
cout << 1 << endl;
}
else
{
cout << count_tape << endl;
}
return 0;
}
'알고리즘 문제' 카테고리의 다른 글
[알고리즘 문제/C++]백준 1700번 : 멀티탭 스케줄링 (0) | 2021.01.10 |
---|---|
[알고리즘 문제/C++]백준 1463번 : 1로 만들기 (0) | 2021.01.10 |
[알고리즘 문제/C++]백준 1260번 : DFS와 BFS (0) | 2021.01.10 |
[알고리즘 문제/C++]백준 11047번 : 동전 0 (0) | 2021.01.10 |
[알고리즘 문제/C++]백준 10448번 : 유레카 이론 (0) | 2021.01.10 |