Coding_Gamesメモ_orDer_oF_succeSsion

Coding_Gamesメモ_orDer_oF_succeSsion

javaの学習にCoding_Games を知り、学習の記録としてメモ。
To debug:

System.err.println( );

を使うとデバックしやすくなる。(エラー出力は評価に影響しない)

内容

王位継承権の順に名前を並べる

ルール

英国王室の王位継承権の順番で名前を並べる

王位継承権のルール

  1. 血統順(直系の子孫優先)
  2. 性別順(男性優先)
  3. 年齢順(年齢が高い方を優先)

出力のルール

  • 死者を除外する(死者の兄弟は出力)
  • カトリック信者(Catholic)を除外する(兄弟は出力)

Catholic を除外 は Anglican だけを出力 でも問題ない

インプット

1行目 入力される人数(n)
2行目から 名前、親、生年、没年、宗教、性別(男性 M ,女性 F)
の順でスペース区切りで入力
空欄は-で入力される

アウトプット

王位継承順に名前を出力

使用したクラス

String

(boolean) = String.equals(x); (String == x) String は == では判定できないので代わりに使用する。

ArrayList

(boolean) = ArrayList.add(x)
x をリストの最後に追加

(E) = ArrayList.get(x)
リストの指定された位置にある要素を返す

(E) = ArrayList.remove(int index)
リストの指定された位置にある要素を削除
同じ書式で要素自体を指定して削除するメゾットもある

考え方

継承権が高い順に出力するか、継承権を比べて高い順に並び替えるかになる

継承権が高い順に出力する場合は親世代→子世代→孫世代と順番に処理する必要がある

継承権を比べる場合は血筋が合流するまで遡って判定する必要がある

難しい

Coding_Games:https://www.codingame.com/
String (Java Platform SE 8) - Oracle Cloud:https://docs.oracle.com/javase/jp/8/docs/api/java/lang/String.html
ArrayList (Java Platform SE 8) - Oracle Cloud:https://docs.oracle.com/javase/jp/8/docs/api/java/util/ArrayList.html