結果

問題 No.418 ミンミンゼミ
ユーザー nihi9119
提出日時 2017-05-25 21:08:13
言語 Java
(openjdk 23)
結果
AC  
実行時間 63 ms / 1,000 ms
コード長 2,350 bytes
コンパイル時間 3,218 ms
コンパイル使用メモリ 82,920 KB
実行使用メモリ 37,452 KB
最終ジャッジ日時 2024-07-16 02:21:08
合計ジャッジ時間 5,514 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 25
権限があれば一括ダウンロードができます

ソースコード

diff #

package test_5;

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

/*No.418 ミンミンゼミ
*
* - まず "mi" から始まる。
* - その後いくつかの "-" がつく。"-" の数は 0 でもかまわない。
* - 最後に "n" で終わる。
* あなたの仕事は, 文字列 SS がいくつのミーン文字列を繰り返しているかを数えることです。
* */

public class Question_05_0525_1 {

	static final int MIN_LENGTH = 3;
	static final int MAX_LENGTH = 100;
	static final String FIRST_CHARACTER = "mi";
	static final String LAST_CHARACTER = "n";

	public static void main(String[] args) {

		InputStreamReader re = new InputStreamReader(System.in);
		BufferedReader br = new BufferedReader(re);

		try {

			int minCount = 0;
			int StringCount = 0;
			String twoCharacter;
			String minString = br.readLine();

			if (NumJudgment(minString)) {

				String[] minArray = minString.split("");

				do {
					for (int i = StringCount; i < minArray.length; i++) {
						// minを探す
						twoCharacter = minArray[i] + minArray[i + 1];
						if (twoCharacter.equals(FIRST_CHARACTER)) {
							StringCount = i + 2; //miの2文字分進める
							// nを探す
							for (int j = StringCount; j < minArray.length; j++) {
								if (minArray[j].equals(LAST_CHARACTER)) {
									StringCount = j + 1; //nの次から検索を始める
									minCount++;
									break;
								}
							}
							break;
						}
						// miがなければループ
						else {
							StringCount = i + 2;//miの2文字分進める
						}
					}
				} while (StringCount < minString.length());

				// セミが何回「ミーン」と鳴いたかを出力
				System.out.println(minCount);

			} else {
				System.out.println("桁数が不正です");
			}

		} catch (IOException e) {
			System.out.println("エラーが発生しました");
		} finally {
			try {
				re.close();
				br.close();
			} catch (IOException e) {
				System.out.println("InputStreamReader、BufferedReaderクローズ中にエラーが発生しました");
			}
		}
	}

	// 有効値判定メソッド
	private static boolean NumJudgment(String minString) {
		Boolean result = false;
		if (MIN_LENGTH <= minString.length() && minString.length() <= MAX_LENGTH) {
			result = true;
		}
		return result;
	}

}
0