- find optimal in each step
- approximation
완벽한 것보다 충분히 좋은 것을 찾는다.
bestStations = set();
while 남아있는_도시들:
// 최적의 기지국 찾기
bestStation = None;
coveredCities = set();
for station in stations:
covered = stationCover & 남아있는_도시들;
if (len(covered) > len(coveredCities):
bestStation = station;
coveredCities = covered;
// 업데이트
남아있는_도시들 -= coveredCities;
bestStations.push(bestStation);