diff --git a/syamauchi/src/B128.java b/syamauchi/src/B128.java new file mode 100644 index 0000000000000000000000000000000000000000..8ec082394b44e7b95fd24581b4647dec6fa7c756 --- /dev/null +++ b/syamauchi/src/B128.java @@ -0,0 +1,78 @@ +package src; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class B128 { + static final int NUMBER_OF_LENGTH = 3; + + public static void main(String[] args) { + final Scanner sc = new Scanner(System.in); + new B128().createCode(sc); + sc.close(); + + } + + private void createCode(final Scanner sc) { + final List lineNumberList = splitNumbers(sc); + final int topLine = 0; + final int middleLine = 3; + final int bottomLine = 6; + for (int i = 0; i < lineNumberList.size(); i++) { + final String number = lineNumberList.get(i); + writeLine(number, topLine); + writeLine(number, middleLine); + writeLine(number, bottomLine); + } + } + + private void writeLine(final String lineNumberList, final int line) { + + for (int i = 0; i < NUMBER_OF_LENGTH; i++) { + final int codeNumber = Integer.parseInt(lineNumberList.substring(i, i + 1)); + + if (codeNumber > NUMBER_OF_LENGTH + line) { + writeSharpAll(); + } else if (codeNumber <= line) { + writeDotAll(); + } else { + writeSharp(codeNumber); + } + + } + System.out.println(); + } + + private void writeSharp(final int codingNumber) { + final int writeCount = codingNumber % NUMBER_OF_LENGTH; + if (writeCount == 0) { + writeSharpAll(); + } else if (writeCount == 1) { + System.out.print("#.."); + } else if (writeCount == 2) { + System.out.print("##."); + } + + } + + private void writeSharpAll() { + System.out.print("###"); + + } + + private void writeDotAll() { + System.out.print("..."); + + } + + private List splitNumbers(final Scanner sc) { + final String numbers = sc.next(); + final List lineNumberList = new ArrayList(); + final int splitDigit = 3; + for (int i = 0; i < numbers.length(); i = i + splitDigit) { + lineNumberList.add(numbers.substring(i, i + splitDigit)); + } + return lineNumberList; + } +}