結果
| 問題 |
No.418 ミンミンゼミ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 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 |
ソースコード
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;
}
}