ヤマカサのプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

No.667 Mice's Luck(ネズミ達の運)

アルゴリズムの問題を解く

今回は久しぶりにyukicoderに掲載されている問題を解きたいと思います。
No.667 Mice's Luck(ネズミ達の運) - yukicoder
f:id:yamakasa3:20180326184509p:plain

レベル1.5の問題なので、特別な知識を必要とせずに解くことができます。

コンソール上に入力された文字列を読み込む必要があることと、読み込んだ文字列を一文字ずつ判別する必要がありました。

コード

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class MicesLuck {
	public static void main(String[] args) {
		String str = null;
		BufferedReader input = new BufferedReader (
				new InputStreamReader (System.in));
		try {
			str = input.readLine();
			//System.out.println(str);
		} catch (IOException e) {
			e.printStackTrace();
		}
		int numSafe = 0;
		int numDanger = 0;
		int numRoom = str.length();
		int []Data = new int[numRoom];
		for(int i = 0; i < numRoom; i++) {
			char c = str.charAt(i);
			if(c == 'o') {
				numSafe++;
				Data[i] = 0;
			}else if(c == 'x') {
				numDanger++;
				Data[i] = 1;
			}
		}
		int numRoom1 = numRoom;
		int numSafe1 = numSafe;
		System.out.println(numSafe + " " + numDanger);
		for(int i = 0; i < numRoom; i++) {
			double probability = 100.0 * (double)numSafe1 / (double)numRoom1;
			System.out.println(probability);
			numRoom1 --;
			if(Data[i] == 0) {
				numSafe1 --;
			}
		}
	}
}