From 8eee5f29adf1424c94fffd9ad447d98f782f3153 Mon Sep 17 00:00:00 2001 From: syamauchi Date: Thu, 6 Jul 2023 14:25:27 +0900 Subject: [PATCH 1/3] =?UTF-8?q?B079=E5=9B=9E=E7=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syamauchi/src/B079.java | 94 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 syamauchi/src/B079.java diff --git a/syamauchi/src/B079.java b/syamauchi/src/B079.java new file mode 100644 index 0000000..de0d17c --- /dev/null +++ b/syamauchi/src/B079.java @@ -0,0 +1,94 @@ +package src; + +import java.util.ArrayList; +import java.util.Scanner; + +public class B079 { + static final String[] TO_NUMBER = { + "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", + "t", "u", "v", "w", "x", "y", "z" + }; + static final int DECREASE_NUMBER = 101; + + public static void main(String[] args) { + final Scanner sc = new Scanner(System.in); + + new B079().checkRelationship(sc); + } + + private void checkRelationship(final Scanner sc) { + final ArrayList namesList = splitName(sc); + final ArrayList reverceNamesList = reverceSplitName(namesList); + final int relationship = calcRelationship(sequenceConversion(namesList)); + final int reverceRelationship = calcRelationship(sequenceConversion(reverceNamesList)); + compareRelationship(relationship, reverceRelationship); + } + + private ArrayList splitName(final Scanner sc) { + final String[] names = sc.nextLine().split(" "); + final ArrayList namesList = new ArrayList(); + for (int i = 0; i < names.length; i++) { + namesList.add(names[i]); + } + sc.close(); + return namesList; + } + + private ArrayList reverceSplitName(final ArrayList nameList) { + final ArrayList reverceNamesList = new ArrayList(); + for (int i = nameList.size() - 1; i >= 0; i--) { + reverceNamesList.add(nameList.get(i)); + } + + return reverceNamesList; + } + + private ArrayList sequenceConversion(final ArrayList namesList) { + final ArrayList nameOfNumberList = new ArrayList(); + for (int i = 0; i < namesList.size(); i++) { + for (int j = 0; j < namesList.get(i).length(); j++) { + nameOfNumberList.add(nameToNumber(namesList.get(i).substring(j, j + 1))); + + } + + } + + return nameOfNumberList; + } + + private int nameToNumber(final String nameOfCharacter) { + for (int i = 0; i < TO_NUMBER.length; i++) { + if (nameOfCharacter.equals(TO_NUMBER[i])) { + return i + 1; + } + } + return 0; + } + + private int calcRelationship(final ArrayList nameOfNumberList) { + final ArrayList numberList = new ArrayList(nameOfNumberList); + int totalNumber; + for (int i = 0; i <= nameOfNumberList.size(); i++) { + for (int j = 0; j < numberList.size() - 1; j++) { + totalNumber = numberList.get(j) + numberList.get(j + 1); + if (totalNumber > DECREASE_NUMBER) { + totalNumber = totalNumber - DECREASE_NUMBER; + } + numberList.set(j, totalNumber); + } + if (numberList.size() > 1) { + numberList.remove(numberList.size() - 1); + } + } + return numberList.get(0); + } + + private void compareRelationship(final int relationship, final int reverceRelationship) { + if (relationship > reverceRelationship) { + System.out.println(relationship); + } else { + System.out.println(reverceRelationship); + } + } + +} -- GitLab From 34b57f8a755e11f9b2ac92c6ca033097e25b2886 Mon Sep 17 00:00:00 2001 From: syamauchi Date: Thu, 6 Jul 2023 14:35:50 +0900 Subject: [PATCH 2/3] =?UTF-8?q?B079=E3=82=BD=E3=83=BC=E3=82=B9=E3=82=B3?= =?UTF-8?q?=E3=83=A1=E3=83=B3=E3=83=88=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syamauchi/src/B079.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/syamauchi/src/B079.java b/syamauchi/src/B079.java index de0d17c..9cbdb9e 100644 --- a/syamauchi/src/B079.java +++ b/syamauchi/src/B079.java @@ -24,6 +24,7 @@ public class B079 { compareRelationship(relationship, reverceRelationship); } + // 入力値を分ける private ArrayList splitName(final Scanner sc) { final String[] names = sc.nextLine().split(" "); final ArrayList namesList = new ArrayList(); @@ -34,6 +35,7 @@ public class B079 { return namesList; } + // 名前のリストの要素順を逆にする private ArrayList reverceSplitName(final ArrayList nameList) { final ArrayList reverceNamesList = new ArrayList(); for (int i = nameList.size() - 1; i >= 0; i--) { @@ -43,6 +45,7 @@ public class B079 { return reverceNamesList; } + // 1文字ずつ対応されている整数に変換 private ArrayList sequenceConversion(final ArrayList namesList) { final ArrayList nameOfNumberList = new ArrayList(); for (int i = 0; i < namesList.size(); i++) { @@ -56,6 +59,7 @@ public class B079 { return nameOfNumberList; } + // 文字と対応している整数を算出 private int nameToNumber(final String nameOfCharacter) { for (int i = 0; i < TO_NUMBER.length; i++) { if (nameOfCharacter.equals(TO_NUMBER[i])) { @@ -65,12 +69,14 @@ public class B079 { return 0; } + // 相性度の計算 private int calcRelationship(final ArrayList nameOfNumberList) { final ArrayList numberList = new ArrayList(nameOfNumberList); int totalNumber; for (int i = 0; i <= nameOfNumberList.size(); i++) { for (int j = 0; j < numberList.size() - 1; j++) { totalNumber = numberList.get(j) + numberList.get(j + 1); + // 101より大きければ101引く if (totalNumber > DECREASE_NUMBER) { totalNumber = totalNumber - DECREASE_NUMBER; } @@ -83,6 +89,7 @@ public class B079 { return numberList.get(0); } + // 正順と逆順で計算した相性度の高いほうを出力 private void compareRelationship(final int relationship, final int reverceRelationship) { if (relationship > reverceRelationship) { System.out.println(relationship); -- GitLab From b079a7fc63b4e64ca5edd287c567c6b392938e99 Mon Sep 17 00:00:00 2001 From: syamauchi Date: Thu, 6 Jul 2023 15:32:14 +0900 Subject: [PATCH 3/3] =?UTF-8?q?B079=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- syamauchi/src/B079.java | 57 ++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/syamauchi/src/B079.java b/syamauchi/src/B079.java index 9cbdb9e..c60ded6 100644 --- a/syamauchi/src/B079.java +++ b/syamauchi/src/B079.java @@ -1,13 +1,16 @@ package src; import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.Scanner; public class B079 { - static final String[] TO_NUMBER = { - "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", - "t", "u", "v", "w", "x", "y", "z" - }; + static final List TO_NUMBER = Arrays + .asList( + "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", + "s", + "t", "u", "v", "w", "x", "y", "z"); static final int DECREASE_NUMBER = 101; public static void main(String[] args) { @@ -17,8 +20,8 @@ public class B079 { } private void checkRelationship(final Scanner sc) { - final ArrayList namesList = splitName(sc); - final ArrayList reverceNamesList = reverceSplitName(namesList); + final List namesList = splitName(sc); + final List reverceNamesList = reverceSplitName(namesList); final int relationship = calcRelationship(sequenceConversion(namesList)); final int reverceRelationship = calcRelationship(sequenceConversion(reverceNamesList)); compareRelationship(relationship, reverceRelationship); @@ -28,29 +31,29 @@ public class B079 { private ArrayList splitName(final Scanner sc) { final String[] names = sc.nextLine().split(" "); final ArrayList namesList = new ArrayList(); - for (int i = 0; i < names.length; i++) { - namesList.add(names[i]); + for (String name : names) { + namesList.add(name); } sc.close(); return namesList; } // 名前のリストの要素順を逆にする - private ArrayList reverceSplitName(final ArrayList nameList) { - final ArrayList reverceNamesList = new ArrayList(); - for (int i = nameList.size() - 1; i >= 0; i--) { - reverceNamesList.add(nameList.get(i)); + private List reverceSplitName(final List nameList) { + final List reverceNamesList = new ArrayList(); + for (int index = nameList.size() - 1; index >= 0; index--) { + reverceNamesList.add(nameList.get(index)); } return reverceNamesList; } // 1文字ずつ対応されている整数に変換 - private ArrayList sequenceConversion(final ArrayList namesList) { - final ArrayList nameOfNumberList = new ArrayList(); - for (int i = 0; i < namesList.size(); i++) { - for (int j = 0; j < namesList.get(i).length(); j++) { - nameOfNumberList.add(nameToNumber(namesList.get(i).substring(j, j + 1))); + private List sequenceConversion(final List namesList) { + final List nameOfNumberList = new ArrayList(); + for (int name = 0; name < namesList.size(); name++) { + for (int index = 0; index < namesList.get(name).length(); index++) { + nameOfNumberList.add(nameToNumber(namesList.get(name).substring(index, index + 1))); } @@ -61,26 +64,28 @@ public class B079 { // 文字と対応している整数を算出 private int nameToNumber(final String nameOfCharacter) { - for (int i = 0; i < TO_NUMBER.length; i++) { - if (nameOfCharacter.equals(TO_NUMBER[i])) { - return i + 1; + int number = 0; + for (String character : TO_NUMBER) { + if (nameOfCharacter.equals(character)) { + return number + 1; } + number++; } return 0; } // 相性度の計算 - private int calcRelationship(final ArrayList nameOfNumberList) { - final ArrayList numberList = new ArrayList(nameOfNumberList); + private int calcRelationship(final List nameOfNumberList) { + final List numberList = new ArrayList(nameOfNumberList); int totalNumber; - for (int i = 0; i <= nameOfNumberList.size(); i++) { - for (int j = 0; j < numberList.size() - 1; j++) { - totalNumber = numberList.get(j) + numberList.get(j + 1); + for (int people = 0; people <= nameOfNumberList.size(); people++) { + for (int number = 0; number < numberList.size() - 1; number++) { + totalNumber = numberList.get(number) + numberList.get(number + 1); // 101より大きければ101引く if (totalNumber > DECREASE_NUMBER) { totalNumber = totalNumber - DECREASE_NUMBER; } - numberList.set(j, totalNumber); + numberList.set(number, totalNumber); } if (numberList.size() > 1) { numberList.remove(numberList.size() - 1); -- GitLab