시간을 기록해 주면서 대기 시간이 지났는지 확인해 준다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int N, M;
int prevTime, answer;
vector<int> v;
void calc(int size, int coolTime)
{
v.clear();
answer = 1;
while (size--)
{
cin >> prevTime;
v.push_back(prevTime);
}
sort(v.begin(), v.end());
prevTime = v.front();
for (const int &curTime : v)
{
if (curTime - prevTime < coolTime)
{
continue;
}
prevTime = curTime;
++answer;
}
cout << answer;
}
int main()
{
ios::sync_with_stdio(0), cin.tie(0);
cin >> N >> M;
v.reserve(max(N, M));
calc(N, 100);
cout << " ";
calc(M, 360);
return 0;
}
정렬 후 확인해 주면 된다.
각 스킬의 대기 시간이 지나고 난 뒤 스킬이 눌렸는지 확인해 주면서 눌린 시간을 갱신해 주면 횟수를 구할 수 있다.