오늘의 알고리즘
[C++]탐욕법(Greedy) 체육복(프로그래머스 1레벨)
하늘하늘 .
2022. 2. 6. 18:52
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int n, vector<int> lost, vector<int> reserve)
{
sort(lost.begin(),lost.end());
sort(reserve.begin(), reserve.end());
for (int i = 0; i < lost.size(); ++i)
{
for (int j = 0; j < reserve.size(); ++j)
{
if (lost[i] == reserve[j])
{
lost.erase(lost.begin() + i);
reserve.erase(reserve.begin() + j);
--i;
--j;
}
}
}
for (int i = 0; i < lost.size(); ++i)
{
for (int j = 0; j < reserve.size(); ++j)
{
if (lost[i] + 1 == reserve[j])
{
lost.erase(lost.begin() + i);
reserve.erase(reserve.begin() + j);
--i;
--j;
}
else if (lost[i] - 1 == reserve[j])
{
lost.erase(lost.begin() + i);
reserve.erase(reserve.begin() + j);
--i;
--j;
}
}
}
return n - lost.size();
}
문제 자체는 별로 안어려웠는데
생각보다 케이스가 많아서 고민 좀 있었다.
처음에는 그냥 sort가 되어있는 줄 알았는데 아니었어가지고 sort를 실행했고
상상도 못했는데 잃어버렸지만 여분의 옷이 있었을 줄이야...