문제접근🤔


놓쳤던 부분😅


코드😁


KB

ms

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(int n, vector<int> lost, vector<int> reserve) {
    int answer = n - lost.size();
    vector<int>::iterator pos;
    
    sort(lost.begin(), lost.end());
    sort(reserve.begin(), reserve.end());
    
    for (int i = 0; i < lost.size(); i++)
    {
        if ((pos = find(reserve.begin(), reserve.end(), lost[i])) != reserve.end())
        {
            answer++;
            *pos = 0;
            lost[i] = -1;
        }
    }
    
    for (int i = 0; i < reserve.size(); i++)
    {
        if (reserve[i] != 0)
        {
            if ((pos = find(lost.begin(), lost.end(), reserve[i] - 1)) != lost.end())
            {
                answer++;
                *pos = 0;
            }
            else if ((pos = find(lost.begin(), lost.end(), reserve[i] + 1)) != lost.end())
            {
                answer++;
                *pos = 0;
            }
        }
    }
    return answer;
}