diff --git a/rtanaka/src/B079.java b/rtanaka/src/B079.java new file mode 100644 index 0000000000000000000000000000000000000000..f8ff32c9edebef91c2886f310023dc08b069b78b --- /dev/null +++ b/rtanaka/src/B079.java @@ -0,0 +1,26 @@ +/** + * @author 田中亮汰 + * @version 1.0 + */ + +import java.util.List; +import java.util.Scanner; + +public class B079 { + + public static void main(String[] args) { + /* 入力 */ + Scanner sc = new Scanner(System.in); + String nameA = sc.next();// 文字列を受け取る + String nameB = sc.next(); + sc.close(); + + /* 計算 */ + String nameConcatenation = nameA.concat(nameB); // 文字列を連結する + List currentNums = CompatibilityCalculator.alphabetToNumber(nameConcatenation);// 文字列を数字のリストに変換する + int compatibilityResult = CompatibilityCalculator.compatibilityCheck(currentNums);//相性を計算し返す + + /* 出力 */ + System.out.println(compatibilityResult); + } +} \ No newline at end of file diff --git a/rtanaka/src/CompatibilityCalculator.java b/rtanaka/src/CompatibilityCalculator.java new file mode 100644 index 0000000000000000000000000000000000000000..0a840a3b801a5d62e4afa09b7625dff15de8d596 --- /dev/null +++ b/rtanaka/src/CompatibilityCalculator.java @@ -0,0 +1,46 @@ +import java.util.ArrayList; +import java.util.List; + +public class CompatibilityCalculator { + + /** + * 文字列を一文字ずつ数値に変換しリストに追加して + * そのリストを返すメソッド + * + * @param text 入力されたアルファベット文字列 + * @return アルファベットを数字に変換したリスト。 + */ + public static List alphabetToNumber(String text) { + List convertedNums = new ArrayList<>(); + + for (char ch : text.toCharArray()) { + convertedNums.add((ch - 'a' + 1)); + } + return convertedNums; + } + + /** + * リストの中身を参照して前後の要素を足して別のリストに追加 + * そのリストに対して同じ処理をする事をリストの要素数が1になるまで繰り返し + * その要素(数値)を返すメソッド + * + * @param currentNumsList アルファベットを数字に変換したリスト + * @return 相性計算後の数値 + */ + public static int compatibilityCheck(List currentNumsList) { + // リストの要素数が1になるまで + while (currentNumsList.size() > 1) { + List nextNumsList = new ArrayList<>();// nextNumsの初期化 + for (int i = 0; i < currentNumsList.size() - 1; i++) {// リストの要素数だけ回す + int sum = currentNumsList.get(i) + currentNumsList.get(i + 1);// リストの要素とその次の要素を足す + if (sum >= 101) { + sum -= 101;// 二つの数字の合計が101を超える場合は101を引く + } + nextNumsList.add(sum);//二値の合計を次のリストに加える + } + currentNumsList = nextNumsList;// リストを更新 + } + int compatibilityResult = currentNumsList.get(0); + return compatibilityResult; + } +} \ No newline at end of file