정렬된 원소의 개수 중 연속되어 나타내는 수의 개수가 3개 이상일 시에 2개만 존재하도록 그 외의 숫자를 삭제하는 요구사항으로 간단해 보이나 여분의 메모리를 할당하지 않아야하며, O(1) 복잡도 내외로 문제 풀이가 완료되어야 한다.
결론적으로 3개 이상의 수가 연속될 시 vector 내 erase API 사용하여 삭제하는 방향의 풀이를 진행했으나, API 내 복잡도를 고려하지 않은 방향의 풀이로 출제 의도와 동일한 해법은 아닌 것으로 판단됨. 다만 0ms 내외의 소요 시간은 확인함.
int calculate(std::vector<int>& nums){
if(nums.size() <= 2) return nums.size();
for(int k = 2; k < nums.size(); k++){
if(nums[k] == nums[k - 1] && nums[k] == nums[k-2]){
nums.erase(nums.begin() + k);
k--;
}
}
return nums.size();
}