#include <string>
#include <unordered_set>
#include <vector>
using namespace std;
int solution(vector<int> v) {
int answer = 0;
int arr[10001] = {
0,
};
unordered_set<int> s;
for (int i = 0; i < v.size(); i++) {
s.insert(v[i]);
arr[v[i]]++;
}
unordered_set<int> a;
for (int i = 0; i < v.size(); i++) {
if (arr[v[i]] >= 2) {
arr[v[i]]--;
} else {
arr[v[i]]--;
s.erase(v[i]);
}
a.insert(v[i]);
if (a.size() == s.size()) answer++;
}
return answer;
}
원소마다 개수를 세는 arr을 따로 선언하고, 먼저 첫 번째 set에 미리 모든 원소를 넣는다.
그리고 비교하기 위한 두 번째 set을 만든 뒤 for문을 돌면서 첫 번째 set엔 원소를 지우고,
두 번째 set엔 원소를 추가하며 size를 비교하며 size가 같으면 answer을 하나 올려준다.