System.out.println("paiza learning");|おまけ解案 のおまけ解案とおまけ

この記事はpaiza Advent Calendar 2023 ( https://adventar.org/calendars/8644 )の10日目の記事になります。

先日5日目の記事( https://note.com/bt_botw/n/n3d20e43b168c )を投稿したところ、7日目の記事( https://note.com/haseco/n/n774beda8b1ff )でおまけ問題を改良したおまけ問題を作っていただきました。
せっかくなので、7日目の記事のおまけ問題の解答案を作成してみました。

import java.util.*;

public class Main {
    public static void main(String[] args) {
        System.out.println("paiza learning");
    }
}

class System {
    static class out {
        static void println(String s) {
            char space = s
                .chars()
                .mapToObj(c -> (char) c)
                .sorted()
                .findFirst().get();
            enum A {paiza, Advent, Calendar}
            java.lang.System.out.print(A.paiza);
            java.lang.System.out.print(space);
            java.lang.System.out.print(A.Advent);
            java.lang.System.out.print(space);
            java.lang.System.out.println(A.Calendar);
        }
    }
}

https://paiza.io/projects/PBiFE1aaxGPLMcePgkktIQ

今回はリテラルの使用が禁止されたので、substringで使っていた整数リテラルを使わないようにしてみました。
どうでしょう。

おまけ

7日目の記事のおまけに、さらに、『追加でclass,interface,enum,recordは合わせて1つだけしか記述できない』制限を入れたものをどなたかどうぞ。

import java.util.*;

public class Main {
    public static void main(String[] args) {
        System.out.println("paiza learning");
    }
}

コード1

  1. コード1を修正して"paiza Advent Calendar"と表示されるようにしてください。

  2. ただし、5行目(System.out.println("paiza learning");の行)を書き換えてはいけません。

  3. mainメソッドの中で、コメントアウトもif文もfor文もwhile文もdo while文もswitch文もswitch式もラムダも匿名クラスも内部クラスもテキストブロックも使ってはいけません。

  4. 標準エラー出力へ出力した内容は正誤に関係ないものとします。答えは標準出力に出力してください。

  5. 標準出力の2行目以降に余計な文字を出力してはいけません。

  6. 標準出力の1行目に余計な文字を出力してはいけません。

  7. try-catch文、try-finally文、try-with-resources文を使ってはいけません。

  8. System.setOutと書いてはいけません。

  9. 完全修飾名がjava.lang.System.setOutであるメソッドを呼び出してはいけませんし、リフレクションを使って変数の内容を書き換えてはいけません。

  10. 5行目のコードはmainメソッドの中に記述されている必要があります。

  11. mainメソッドをオーバーロードしてはいけません。

  12. スタティックイニシャライザを使ってはいけません。

  13. 完全修飾名がjava.lang.System.exitであるメソッドを呼び出してはいけません。

  14. 1~7行目の編集と1~7行目への追記をすべて禁止します。

  15. ダブルクォートとシングルクォートを追加で使用することを禁止します。

  16. 追加でのリテラル使用を禁止します。

  17. 追加でclass,interface,enum,recordは合わせて1つだけしか記述してはいけません。


この記事が気に入ったらサポートをしてみませんか?