kmjp's blog

競技プログラミング参加記です

TopCoder SRM 574 Div2 Easy CityMap

さてDiv2 Easyもさくっとクリアしていきましょう。
http://community.topcoder.com/stat?c=problem_statement&pm=12479

問題

長方形の土地の中で、いくつか興味深いポイントがある。
土地は文字列で与えられ、そのうち興味深いポイントはアルファベットで与えられる。

それとは別に、整数配列で興味深いポイントの数が与えられる。
各ポイント数に応じたポイントのアルファベット数を答える。

解法

単純にアルファベットの登場回数をカウントするだけ。

class CityMap {
	public:
	string getLegend(vector <string> cityMap, vector <int> POIs) {
		int W=cityMap[0].size();
		int H=cityMap.size();
		int num[26];
		ZERO(num);
		
		int y,x;
		FOR(y,H) FOR(x,W) if(cityMap[y][x]!='.') num[cityMap[y][x]-'A']++;
		
		string res="";
		FOR(x,POIs.size()) {
			int nu=POIs[x];
			FOR(y,26) {
				if(nu==num[y]) {
					res += 'A'+y;
					break;
				}
			}
		}
		return res;
	}

};

まとめ

イマイチ面白みのない問題だな…。