From 4793fda39cdb8d4605e7560c651cfee362fbf8ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=8E=E7=94=B0=20=E5=95=93=E4=BB=8B?= Date: Mon, 4 Jul 2022 10:46:52 +0900 Subject: [PATCH 1/5] =?UTF-8?q?paiza=E3=81=AE=E5=95=8F=E9=A1=8C10=E3=81=AE?= =?UTF-8?q?=E5=9B=9E=E7=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- knoda/src/C065.java | 93 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 knoda/src/C065.java diff --git a/knoda/src/C065.java b/knoda/src/C065.java new file mode 100644 index 0000000..dddeeb4 --- /dev/null +++ b/knoda/src/C065.java @@ -0,0 +1,93 @@ +package hellojunit; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class C065 { + + public static void main(String[] args) { + Scanner scan = new Scanner(System.in); + + // ヒントの数を入力 + int hintNum = scan.nextInt(); + + /* symbolList : 記号(<、>、/)が格納されているリスト + * numList : 整数が格納されているリスト + */ + List symbolList = new ArrayList(); + List numList = new ArrayList(); + + // 記号と整数を入力 + for (int hint = 0; hint < hintNum; hint++) { + symbolList.add(scan.next()); + numList.add(scan.nextInt()); + } + + int answer = getAnswer(symbolList, numList); + System.out.println(answer); + scan.close(); + } + + // ヒントの条件を満たす整数を取得するメソッド + static int getAnswer(List symbolList, List numList) { + List answerCandidateNumList + = hintCalculation(symbolList, numList); + + int answer = 0; + + // 整数がいくつ条件を満たしているか数える + for (Integer num : answerCandidateNumList) { + long numCount = answerCandidateNumList + .stream() + .filter(n -> n == num) + .count(); + + // 整数がすべての条件を満たしているとき + if (numCount == symbolList.size()) { + answer = num; + break; + } + } + return answer; + } + + // ヒントの条件を満たすための計算処理メソッド + static List hintCalculation(List symbolList, List numList) { + + // 1つでもヒントの条件を満たす整数を格納するリスト + List answerCandidateNumList = new ArrayList(); + + for (int hint = 0; hint < symbolList.size(); hint++) { + for (int num = 1; num <= 100; num++) { + + // ヒントの記号が「>」「<」「/」のみのとき + if (symbolList.contains(">") || symbolList.contains("<") + || symbolList.contains("/")) { + + // ヒントの条件を満たしているかを判定 + if (symbolList.get(hint).equals(">")) { + if (num > numList.get(hint)) { + answerCandidateNumList.add(num); + } + } else if (symbolList.get(hint).equals("<")) { + if (num < numList.get(hint)) { + answerCandidateNumList.add(num); + } + } else if (symbolList.get(hint).equals("/")) { + if (num % numList.get(hint) == 0) { + answerCandidateNumList.add(num); + } + } + } else { + while (answerCandidateNumList.size() > 0) { + answerCandidateNumList.remove(0); + } + break; + } + } + } + return answerCandidateNumList; + } + +} -- GitLab From d37d525377ec63d18a6560431cfda44737b4505d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=8E=E7=94=B0=20=E5=95=93=E4=BB=8B?= Date: Mon, 4 Jul 2022 10:59:00 +0900 Subject: [PATCH 2/5] =?UTF-8?q?C065=20=E6=95=B0=E5=AD=97=E3=81=82=E3=81=A6?= =?UTF-8?q?=E3=82=B2=E3=83=BC=E3=83=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- knoda/test/C065Test.java | 83 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 knoda/test/C065Test.java diff --git a/knoda/test/C065Test.java b/knoda/test/C065Test.java new file mode 100644 index 0000000..ea2bfd5 --- /dev/null +++ b/knoda/test/C065Test.java @@ -0,0 +1,83 @@ +package hellojunit; + +import static org.hamcrest.CoreMatchers.*; +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.junit.Test; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class C065Test { + + public static class + ヒントの記号が大なり小なりスラッシュのみかつ正の整数が100以下のとき { + + List symbolList; + List numList; + + @Test + public void 出力が35になるテスト() { + symbolList = new ArrayList(Arrays.asList(">", "<", "/")); + numList = new ArrayList(Arrays.asList(30, 40, 5)); + int actual = C065.getAnswer(symbolList, numList); + int expected = 35; + assertThat(actual, is(expected)); + } + + @Test + public void 出力が84になるテスト() { + symbolList = new ArrayList(Arrays.asList("/", "<", "/", ">")); + numList = new ArrayList(Arrays.asList(4, 90, 6, 77)); + int actual = C065.getAnswer(symbolList, numList); + int expected = 84; + assertThat(actual, is(expected)); + } + } + + public static class + ヒントの記号が大なり小なりスラッシュ以外を含むとき { + + List symbolList; + List numList; + + @Test + public void 出力が0になるテスト1() { + symbolList = new ArrayList(Arrays.asList(">", "<", "/", "+")); + numList = new ArrayList(Arrays.asList(30, 40, 5, 4)); + int actual = C065.getAnswer(symbolList, numList); + int expected = 0; + assertThat(actual, is(expected)); + } + + @Test + public void 出力が0になるテスト2() { + symbolList = new ArrayList(Arrays.asList("/", "<", "*", "/", ">")); + numList = new ArrayList(Arrays.asList(4, 90, 12, 6, 77)); + int actual = C065.getAnswer(symbolList, numList); + int expected = 0; + assertThat(actual, is(expected)); + } + } + + public static class + ヒントが100以上の整数を含むとき { + + List symbolList; + List numList; + + @Test + public void 出力が0になるテスト() { + symbolList = new ArrayList(Arrays.asList("/", "<", "/", ">")); + numList = new ArrayList(Arrays.asList(20, 200, 5, 100)); + int actual = C065.getAnswer(symbolList, numList); + int expected = 0; + assertThat(actual, is(expected)); + } + + } +} -- GitLab From 6cf38481f28b72029d5fb9aaac10daf6d699b57e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=8E=E7=94=B0=20=E5=95=93=E4=BB=8B?= Date: Mon, 4 Jul 2022 11:30:23 +0900 Subject: [PATCH 3/5] =?UTF-8?q?C065=20=E6=95=B0=E5=AD=97=E3=81=82=E3=81=A6?= =?UTF-8?q?=E3=82=B2=E3=83=BC=E3=83=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- knoda/test/C065_AnswerNumberTest.java | 83 +++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 knoda/test/C065_AnswerNumberTest.java diff --git a/knoda/test/C065_AnswerNumberTest.java b/knoda/test/C065_AnswerNumberTest.java new file mode 100644 index 0000000..107ef17 --- /dev/null +++ b/knoda/test/C065_AnswerNumberTest.java @@ -0,0 +1,83 @@ +package hellojunit; + +import static org.hamcrest.CoreMatchers.*; +import static org.junit.Assert.*; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.junit.Test; +import org.junit.experimental.runners.Enclosed; +import org.junit.runner.RunWith; + +@RunWith(Enclosed.class) +public class C065_AnswerNumberTest { + + public static class + ヒントの記号が大なり小なりスラッシュのみかつ正の整数が100以下のとき { + + List symbolList; + List numList; + + @Test + public void 出力が35になるテスト() { + symbolList = new ArrayList(Arrays.asList(">", "<", "/")); + numList = new ArrayList(Arrays.asList(30, 40, 5)); + int actual = C065_AnswerNumber.getAnswer(symbolList, numList); + int expected = 35; + assertThat(actual, is(expected)); + } + + @Test + public void 出力が84になるテスト() { + symbolList = new ArrayList(Arrays.asList("/", "<", "/", ">")); + numList = new ArrayList(Arrays.asList(4, 90, 6, 77)); + int actual = C065_AnswerNumber.getAnswer(symbolList, numList); + int expected = 84; + assertThat(actual, is(expected)); + } + } + + public static class + ヒントの記号が大なり小なりスラッシュ以外を含むとき { + + List symbolList; + List numList; + + @Test + public void 出力が0になるテスト1() { + symbolList = new ArrayList(Arrays.asList(">", "<", "/", "+")); + numList = new ArrayList(Arrays.asList(30, 40, 5, 4)); + int actual = C065_AnswerNumber.getAnswer(symbolList, numList); + int expected = 0; + assertThat(actual, is(expected)); + } + + @Test + public void 出力が0になるテスト2() { + symbolList = new ArrayList(Arrays.asList("/", "<", "*", "/", ">")); + numList = new ArrayList(Arrays.asList(4, 90, 12, 6, 77)); + int actual = C065_AnswerNumber.getAnswer(symbolList, numList); + int expected = 0; + assertThat(actual, is(expected)); + } + } + + public static class + ヒントが100以上の整数を含むとき { + + List symbolList; + List numList; + + @Test + public void 出力が0になるテスト() { + symbolList = new ArrayList(Arrays.asList("/", "<", "/", ">")); + numList = new ArrayList(Arrays.asList(20, 200, 5, 100)); + int actual = C065_AnswerNumber.getAnswer(symbolList, numList); + int expected = 0; + assertThat(actual, is(expected)); + } + + } +} -- GitLab From 8d46925e36b61c4d156426dd53fcf999d3ceb750 Mon Sep 17 00:00:00 2001 From: knoda Date: Mon, 4 Jul 2022 02:33:47 +0000 Subject: [PATCH 4/5] Delete C065Test.java --- knoda/test/C065Test.java | 83 ---------------------------------------- 1 file changed, 83 deletions(-) delete mode 100644 knoda/test/C065Test.java diff --git a/knoda/test/C065Test.java b/knoda/test/C065Test.java deleted file mode 100644 index ea2bfd5..0000000 --- a/knoda/test/C065Test.java +++ /dev/null @@ -1,83 +0,0 @@ -package hellojunit; - -import static org.hamcrest.CoreMatchers.*; -import static org.junit.Assert.*; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.junit.Test; -import org.junit.experimental.runners.Enclosed; -import org.junit.runner.RunWith; - -@RunWith(Enclosed.class) -public class C065Test { - - public static class - ヒントの記号が大なり小なりスラッシュのみかつ正の整数が100以下のとき { - - List symbolList; - List numList; - - @Test - public void 出力が35になるテスト() { - symbolList = new ArrayList(Arrays.asList(">", "<", "/")); - numList = new ArrayList(Arrays.asList(30, 40, 5)); - int actual = C065.getAnswer(symbolList, numList); - int expected = 35; - assertThat(actual, is(expected)); - } - - @Test - public void 出力が84になるテスト() { - symbolList = new ArrayList(Arrays.asList("/", "<", "/", ">")); - numList = new ArrayList(Arrays.asList(4, 90, 6, 77)); - int actual = C065.getAnswer(symbolList, numList); - int expected = 84; - assertThat(actual, is(expected)); - } - } - - public static class - ヒントの記号が大なり小なりスラッシュ以外を含むとき { - - List symbolList; - List numList; - - @Test - public void 出力が0になるテスト1() { - symbolList = new ArrayList(Arrays.asList(">", "<", "/", "+")); - numList = new ArrayList(Arrays.asList(30, 40, 5, 4)); - int actual = C065.getAnswer(symbolList, numList); - int expected = 0; - assertThat(actual, is(expected)); - } - - @Test - public void 出力が0になるテスト2() { - symbolList = new ArrayList(Arrays.asList("/", "<", "*", "/", ">")); - numList = new ArrayList(Arrays.asList(4, 90, 12, 6, 77)); - int actual = C065.getAnswer(symbolList, numList); - int expected = 0; - assertThat(actual, is(expected)); - } - } - - public static class - ヒントが100以上の整数を含むとき { - - List symbolList; - List numList; - - @Test - public void 出力が0になるテスト() { - symbolList = new ArrayList(Arrays.asList("/", "<", "/", ">")); - numList = new ArrayList(Arrays.asList(20, 200, 5, 100)); - int actual = C065.getAnswer(symbolList, numList); - int expected = 0; - assertThat(actual, is(expected)); - } - - } -} -- GitLab From 1a0281f43e6a5d3ffa581bd2393f4f8d044fc722 Mon Sep 17 00:00:00 2001 From: knoda Date: Mon, 4 Jul 2022 02:38:10 +0000 Subject: [PATCH 5/5] Delete C065.java --- knoda/src/C065.java | 93 --------------------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 knoda/src/C065.java diff --git a/knoda/src/C065.java b/knoda/src/C065.java deleted file mode 100644 index dddeeb4..0000000 --- a/knoda/src/C065.java +++ /dev/null @@ -1,93 +0,0 @@ -package hellojunit; - -import java.util.ArrayList; -import java.util.List; -import java.util.Scanner; - -public class C065 { - - public static void main(String[] args) { - Scanner scan = new Scanner(System.in); - - // ヒントの数を入力 - int hintNum = scan.nextInt(); - - /* symbolList : 記号(<、>、/)が格納されているリスト - * numList : 整数が格納されているリスト - */ - List symbolList = new ArrayList(); - List numList = new ArrayList(); - - // 記号と整数を入力 - for (int hint = 0; hint < hintNum; hint++) { - symbolList.add(scan.next()); - numList.add(scan.nextInt()); - } - - int answer = getAnswer(symbolList, numList); - System.out.println(answer); - scan.close(); - } - - // ヒントの条件を満たす整数を取得するメソッド - static int getAnswer(List symbolList, List numList) { - List answerCandidateNumList - = hintCalculation(symbolList, numList); - - int answer = 0; - - // 整数がいくつ条件を満たしているか数える - for (Integer num : answerCandidateNumList) { - long numCount = answerCandidateNumList - .stream() - .filter(n -> n == num) - .count(); - - // 整数がすべての条件を満たしているとき - if (numCount == symbolList.size()) { - answer = num; - break; - } - } - return answer; - } - - // ヒントの条件を満たすための計算処理メソッド - static List hintCalculation(List symbolList, List numList) { - - // 1つでもヒントの条件を満たす整数を格納するリスト - List answerCandidateNumList = new ArrayList(); - - for (int hint = 0; hint < symbolList.size(); hint++) { - for (int num = 1; num <= 100; num++) { - - // ヒントの記号が「>」「<」「/」のみのとき - if (symbolList.contains(">") || symbolList.contains("<") - || symbolList.contains("/")) { - - // ヒントの条件を満たしているかを判定 - if (symbolList.get(hint).equals(">")) { - if (num > numList.get(hint)) { - answerCandidateNumList.add(num); - } - } else if (symbolList.get(hint).equals("<")) { - if (num < numList.get(hint)) { - answerCandidateNumList.add(num); - } - } else if (symbolList.get(hint).equals("/")) { - if (num % numList.get(hint) == 0) { - answerCandidateNumList.add(num); - } - } - } else { - while (answerCandidateNumList.size() > 0) { - answerCandidateNumList.remove(0); - } - break; - } - } - } - return answerCandidateNumList; - } - -} -- GitLab