3
1

見上げた夜空の星達の光

プログラムなら掛け算のアレだし、SQLだと全カラム取ってくる的なアレだし、何でもござれのワイルドカード的なアレを沢山繋げちゃうZO!!

とりあえずJavaでDランクはコレにて終了!

チェック処理とかは端折ってる

/** ここから定型文 */
ここで記載したクラスについては、
こっちの記事に書いてある、標準入力をList化したりしてるMainクラスから呼び出す予定だし・なんか継承したりしてるYO!!

ちな、Mainを実行して標準入力から入力するのクソ面倒くさいので、
Java編については問題の入力例をパラメータにしたテストクラスとかも作って公開するYO!!

開発・実行環境はこんな感じ
  • VSCode
  • Java 17
  • jUnit 5.9
  • maven

pom.xmlはこんな感じ

pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>jp.co.asil</groupId>
    <artifactId>paiza202408</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.9.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>
/** ここまで定型文 */

実装クラス

Square.java
package jp.co.asil.paiza202408;

import java.util.List;

public class Square extends Question {

  public Square(List<String> list) {
    super(list);
  }

  /**
   * 整数 N が入力されるので、N 個の*を繋げた文字列を出力するプログラムを作成しましょう。
   * 
   * 例えば N = 3の場合
   *
   * ***
   * 
   * のように出力してください。
   */
  @Override
  public List<String> answer() {
    return List.of("*".repeat(Integer.parseInt(list.get(0))));
  }
}

テストクラス

SquareTest.java
package jp.co.asil.paiza202408;

import static org.junit.jupiter.api.Assertions.assertEquals;

import java.util.List;

import org.junit.jupiter.api.Test;

public class SquareTest {
  @Test
  void testAnswer1() {
    Square testClass = new Square(List.of("4"));
    assertEquals(testClass.answer().get(0), "****");
  }

  @Test
  void testAnswer2() {
    Square testClass = new Square(List.of("6"));
    assertEquals(testClass.answer().get(0), "******");
  }

  @Test
  void testAnswer3() {
    Square testClass = new Square(List.of("100"));
    assertEquals(testClass.answer().get(0), "****************************************************************************************************");
  }
}

まとまとめ

Java 11から使用可能なString.repeatメソッドを使って文字を生成してます。
java 8とかだとIntStreamのrangeで指定数のstreamを作り、mapToObjで 数字を【*】に変換して、collectしたListをString.joinでチョチョイのジョイやで。

java8でチョチョイのジョイ
  public List<String> answer() {
    return List.of(String.join("",
        IntStream.range(0, Integer.parseInt(list.get(0))).mapToObj(i -> "*").collect(Collectors.toList())));
  }
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1