Hatena::Grouptopcoder

hama_DU@TopCoderへの道

2010-03-08[過去問]SRM457(DIV2)

SRM457 div2 第一問(250点)

| SRM457 div2 第一問(250点) - hama_DU@TopCoderへの道 を含むブックマーク はてなブックマーク - SRM457 div2 第一問(250点) - hama_DU@TopCoderへの道

http://www.topcoder.com/stat?c=problem_statement&pm=10299

問題の解釈にやや時間がかかった。

実は行ごとにCの数を数えて、その数を対応する列の下から積み上げればいいと気づいたときは

既に200点を切ってました\(^o^)/


public class TheSquareDivTwo {

	public String[] solve(String[] board) {
		int N = board.length;
		int R[] = new int[N];
		int i = 0;

		// Cを数える
		for (String line : board) {
			for (int j = 0 ; j < line.length() ; j++) {
				if (line.charAt(j) == 'C') {
					R[i]++;
				}
			}
			i++;
		}

		// 下から積み上げるように文字列を生成
		String[] answer = new String[N];
		for (int j = 0 ; j < N ; j++) {
			answer[j] = "";
			for (i = 0 ; i < N ; i++) {
				if (R[i] < N) {
					answer[j] += ".";
					R[i]++;
				} else {
					answer[j] += "C";
				}
			}
		}
		return answer;
	}
}