[JAVA] Ich habe versucht, AOJs Small, Large oder Equal zu lösen

Hallo Dies ist Skanehira von Global Sense Co., Ltd..

Die AOJ wurde bereits in [diesem Artikel] vorgestellt (https://qiita.com/skanehira/items/0760d59da5f23277dbde). Ich habe versucht, das Titelproblem zu lösen.

Es ist ein einfacher Algorithmus. Ich habe versucht, es einfach zu lesen und effizient zu machen.

Problem

Das Problem ist hier. image.png

Mit einem einfachen Problem Sie müssen lediglich die Größe der eingegebenen Zahlen und die Ausgabe vergleichen.

Weil sich die Positionen von a und b nicht ändern Es ist ein Bild, bei dem sich je nach Bedingungen nur die Symbole ändern.

Quelle

Ich werde es veröffentlichen, weil es eine richtige Antwort im Urteil ist. Ich frage mich, ob es einen besseren Weg gibt zu schreiben ...

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String[] line = scan.nextLine().split(" ");

        int[] inputs = new int[2];
        int input;

        // -1,000 ≤ a, b ≤ 1,000
        for (int i = 0; i < line.length; i++) {
            input = Integer.parseInt(line[i]);
            if (input < -1000 || 1000 < input ) System.exit(-1);
            inputs[i] = input;
        }

        int a = inputs[0];
        int b = inputs[1];

        System.out.println("a " + (a < b ? "<": a > b ? ">" : "==") + " b" );

        scan.close();
    }

}

Dies kann etwas verwirrend sein, da der ternäre Operator zweimal verwendet wird. Ich denke, das hat es erheblich verkürzt.

Wenn der Beurteilungsprozess eine Methode ist, wird es wie folgt sein.

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String[] line = scan.nextLine().split(" ");

        int[] inputs = new int[2];
        int input;

        // -1,000 ≤ a, b ≤ 1,000
        for (int i = 0; i < line.length; i++) {
            input = Integer.parseInt(line[i]);
            if (input < -1000 || 1000 < input ) System.exit(-1);
            inputs[i] = input;
        }

        System.out.println("a " + getSymbol(inputs[0], inputs[1]) + " b" );

        scan.close();
    }

    public static String getSymbol(int a, int b) {
        String symbol = "==";

        if (a < b) {
            symbol = "<";
        } else if (a > b){
            symbol = ">";
        }

        return symbol;
    }
}

Schließlich

Ich habe das Gefühl, dass ich den Eingabeteil etwas mehr weglassen kann. Ich kann vorerst nicht daran denken!

Diesen Weg Kann mehr gekürzt werden Die Speichernutzung wird reduziert Die Ausführungszeit wird reduziert Ich wäre Ihnen dankbar, wenn Sie mir Ratschläge wie m (_ _) m geben könnten

Recommended Posts

Ich habe versucht, AOJs Small, Large oder Equal zu lösen
Ich habe versucht, AOJs binäre Suche zu lösen
[Java] Ich habe versucht, Paizas B-Rang-Problem zu lösen
Ich habe versucht, yum-cron zu verifizieren
Ich habe versucht, Rubys "Klassen" -Probleme zu sammeln und zu lösen.
Ich habe versucht, das Problem der "mehrstufigen Auswahl" mit Ruby zu lösen
Ich habe versucht, C # (Indexer) zu kauen.
Ich habe versucht, die Unterstützung für iOS 14 zusammenzufassen
Ich habe versucht, eine flexible ODER-Zuordnung mit MyBatis Dynamic SQL zu implementieren
Ich habe versucht, mit Java zu interagieren
Ich habe versucht, die Methode zu erklären
Ich habe versucht, das Java-Lernen zusammenzufassen (1)
Ich habe versucht, das Paiza-Kampagnenproblem "Herausforderung von Phantomdieb 813" zu lösen.
Ich habe jetzt versucht, Java 8 zusammenzufassen
C # (Polymorphismus: Polymorphismus)
Ich habe versucht, Active Hash zu erklären
Ich habe versucht, das Problem des Google Tech Dev Guide zu lösen
Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby mit Wiederholung zu lösen.
Ich habe versucht, die verwendeten Methoden zusammenzufassen
Ich habe versucht, Processing auf VS Code zu migrieren
Ich habe versucht, das Iterator-Muster zu implementieren
Ich habe versucht, die Stream-API zusammenzufassen
Ich habe versucht, AdoptOpenjdk 11 unter CentOS 7 zu erstellen
Was ist Docker? Ich habe versucht zusammenzufassen
Ich habe versucht, Selen wie JQuery zu verwenden
Ich habe versucht, JavaScript Part.2 Objektorientiert zu berühren
Ich habe versucht, das Problem der Tribonacci-Sequenz in Ruby zu lösen (Zeitlimit 10 Minuten).
[Kleine Geschichte] Ich habe versucht, die Java-ArrayList etwas komfortabler zu gestalten
Ich habe versucht, über JVM / Garbage Collection zusammenzufassen
Ich habe versucht, AdoptOpenJDK 11 (11.0.2) mit dem Docker-Image zu überprüfen
Ich habe versucht, eine Standardauthentifizierung mit Java durchzuführen
Ich habe versucht, polymorph in Nogizaka zu implementieren.
Ich habe versucht, die Federbeinkonfiguration mit Coggle zu verwalten
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
Ich habe versucht, Anmeldeinformationen mit JMX zu verwalten
Ich habe versucht, die Sitzung in Rails zu organisieren
Java Ich habe versucht, einen einfachen Block zu brechen
Ich habe versucht, grafana und postgres [docker-compose] zu verknüpfen
Ich habe versucht, ein Personalmanagement-Tool zu entwickeln
Ich habe versucht, eine Website für das Studium von DUO3.0 zu entwickeln.
C # (Grund der Kapselung)
Ich habe versucht, eine LINE-Klon-App zu erstellen
Ich habe versucht, AdoptOpenJDK 8 zu erstellen (zusätzlich: Amazon Corretto 8)
[Ruby-Grundlagen] Ich habe versucht, Module zu lernen (Kapitel 1)
Ich habe versucht, neunundneunzig in Java auszugeben
Ich habe versucht, JavaFX und Spring Framework zu verknüpfen.
Ich habe versucht, Tomcat so einzustellen, dass das Servlet ausgeführt wird.
Ich habe versucht, eine Anwendung in 2 Sprachen zu entwickeln
Ich habe versucht, Alexa-Fähigkeiten mit Java zu erstellen
Ich habe versucht, eine Website zu entwickeln, um Ausgaben zu erfassen.
Ich habe versucht, einen Server mit Netty zu implementieren
Ich habe versucht, den Block mit Java zu brechen (1)