3
1

問題文

解答例

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		try (Scanner scanner = new Scanner(System.in)) {
			int n = scanner.nextInt();
			int ballCount = 0;
			int strikeCount = 0;
			for (int i = 0; i < n; i++) {
				String s = scanner.next();
				if (s.equals("ball")) {
					ballCount++;
					if (ballCount >= 4) {
						System.out.println("fourball!");
					} else {
						System.out.println("ball!");
					}
				} else {
					strikeCount++;
					if (strikeCount >= 3) {
						System.out.println("out!");
					} else {
						System.out.println("strike!");
					}
				}
			}
		}
	}
}

補足

特になし。「ストライクが3つたまったとき」と「ボールが4つたまったとき」のみ特殊な処理になるので、そのチェックを優先する必要があるくらいか。
処理のネストが深くなってしまったので、ボールだった時とストライクだった時でそれぞれ関数を作成したほうが見やすかったかもしれない。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1