One of the well-known challenges in Edge Computing is strategic placement of cloudlets. The fundamental goals of this challenge are to minimize the deployment cost of cloudlets and to guarantee minimum latency for users of edge services. However, building cloudlet infrastructure may not be feasible in many situations and areas (e.g., disaster situations, unexpected surge in demand, and remote rural areas). Vehicular edge computing, VEC, introduces mobile cloudlets to augment edge computing capacity, enhance its coverage, and reduce latency significantly. However, efficient cloudlet placement is even more critical in VEC as it is not a long-term decision and needs to be repeated over time. In this paper, we address this challenge by designing a generalized cost-aware cloudlet placement approach that places a set of heterogeneous cloudlets in a region and fully maps user applications to appropriate cloudlets while ensuring their latency requirements. We first formulate the problem as a multi-objective integer programming model in a general deployment scenario. This is a computationally NP-hard problem. To tackle its intractability, we then propose a genetic algorithm-based approach, GACP. We investigate the effectiveness of GACP by performing extensive experiments on multiple deployment scenarios based on New York City OpenData. The results show that GACP obtains close to optimal cost placement in significantly reduced time.